Skip to content

The video driver in WSL (2024-08-17) is not sending the real monitor size information to Xrandr.

This is a problem for any GUI application.

You can check a tool I made based on this post at github: https://github.com/A-Ribeiro/wsl-hidpi-suggestion .

...continue reading "Setting DPI Scaling in WSL on High-DPI Monitor"

In our previous post, we talked about radix sort in combination with count sort, which is faster than the standard std::sort algorithm.

Looking at the original algorithm, it is possible to optimize it more.

Our quest for faster sorting continues.

...continue reading "Squeezing the Last Bit: Sorting integers on CPU O(n)"

The sorting problem is treated as a basic problem.

We usually study this topic when we are taking our first steps in the world of programming.

I come through this post to review this issue with a practical approach related to sort numbers using the radixsort, bucketsort and countingsort algorithm.

...continue reading "Fast Sort for Numbers O(n)"

A while ago I saw a question from a beginner in the world of CG about what would be the interpolation in shaders.

I think this topic can be interesting for those who are getting familiar with the topic.

Here I will talk about the basic concept behind the interpolation that is performed inside shaders.

...continue reading "Shaders and the Linear Interpolation"

When you're programming a character's movement, it's often necessary to set the speed parameter.

Some cases the character moves faster, other times it moves slower, until we hit the right parameter setup. This process might not work for all the animations that were included in the project.

This post will open a discussion on how to let the movement be controlled by the artist. By that way we can stop trying to guess what the characters' movement parameters are.

Root Motion

...continue reading "3D Character Programming Part 3 of 3: Root Motion"

Skeletal animation is a way of giving life, movement, smoothness to sequences of poses using geometric transformations.

Our concern in this post is centered on how to perform this frame transition from one pose to another.

skeletal walk

...continue reading "3D Character Programming Part 2 of 3: Skeletal Animation"

The mesh skinning is a way to deform a mesh using a simple structure.

For real-time applications, the simple structure is usually the transformation hierarchy.

...continue reading "3D Character Programming Part 1 of 3: Mesh Skinning"

Very recently I was discussing with Eduardo and he introduced me to the http://shader-playground.timjones.io/ website.

Here you can write your shader code (vertex, fragment, etc...) and you can choose the compiler, language and the shader stage you are writing.

The best analyser is the Radeon GPU Analyser, because it compiles the code, and you can see the shader instructions it generates, the amount of registers it uses, etc…

This is our starting point.

...continue reading "GLSL Shader Tricks: Optimizations on Matrix, Points and Vectors"

PBR image

I started to implement a PBR (Physically Based Rendering) shader and I intend to run it on my Raspberry Pi 3 Model B+.

...continue reading "The Road to PBR (Windows, Linux, Mac and Raspbian)"