We are near the end of 2024 and I wanted to write up a long post about the current state of the rendering in Wicked Engine. If you are interested in graphics programming, then strap yourself in for a long read through some coarse brain dump, without going in too deep to any of the […]| Wicked Engine
Texture streaming is an important feature of modern 3D engines as it is can be the largest contributor to reducing loading times and memory usage, as textures are usually the largest assets. Wicked Engine just got the first implementation of such a system, and here you can read about the details of it in depth.| Wicked Engine
There are a variety of ways to send vertex data to the GPU. Since DX12 and Vulkan, we can choose to use the old-school input layouts definitions in the pipeline state, or using descriptors, which became much more flexible since the DX11-era limitations. Wicked Engine has been using descriptors with bindless manual fetching for a […]| Wicked Engine
Recently the Vulkan API received an exciting new feature, which is video decoding, utilizing the built-in fixed function video unit found in many GPUs. This allows to the writing of super fast cross-platform video applications while freeing up the CPU from expensive decoding tasks. Take a look at an example using real time video decoding […]| Wicked Engine
If you spend a long enough time in graphics development, the time will come eventually when you want to cast between different formats of a GPU resource. The problem is that information about how to do this was a bit hard to come by – until now. When is casting necessary? You will need to […]| Wicked Engine
I recently implemented animation retargeting, something that’s not frequently discussed on the internet in detail. My goal was specifically to copy animations between similar types of skeletons: humanoid to humanoid. A more complicated solution for example, that can retarget humanoid animation to a frog was not my intention. Animation basics To start with implementing something […]| Wicked Engine
10 years ago, I created my first game and became a game developer. Remembering the journey: Before When finishing high school in 2011, I wished that my future job would be as a cool game developer, but I only had experience playing video games. The little programming I did there in classes was boring text-based […]| Wicked Engine
This post shows a way to compute derivatives for texture filtering in compute shaders (for visibility buffer shading). I was missing a step-by-step explanation of how to do this, but after some trial and error, the following method turned out to work well. Background In compute shaders you don’t get access to the ddx() and […]| Wicked Engine
Wicked Engine used Visual Studio to compile all its shaders for a long time, but that changed around a year ago (in 2021) when custom shader compiling tools were implemented. This blog highlights the benefits of this and may provide some new ideas if you are developing graphics programs or tools. Previously First, the old […]| Wicked Engine
Lately I’ve been interested in modernizing the geometry pipeline in the rendering engine, for example reducing the vertex shaders. It’s a well known fact that geometry shaders are not making efficient use of the GPU hardware, but similar issues could apply for vertex and tessellation shaders too, just because there is a need for pushing […]| Wicked Engine