Skip to main content

Nvidia SPIR-V Compiler Bug or Do Subgroup Shuffle Operations Not Imply Execution Dependency?

· 14 min read
Sorakrit Chonwattanagul
Associate Developer @ DevSH Graphics Programming Sp. z O.O.
Mateusz Kielan
CTO of DevSH Graphics Programming Sp. z O.O.

Reduce and scan operations are core building blocks in the world of parallel computing, and now Nabla has a new release with those operations made even faster for Vulkan at the subgroup and workgroup levels.

This article takes a brief look at the Nabla implementation for reduce and scan on the GPU in Vulkan.

Then, I discuss a missing execution dependency expected for a subgroup shuffle operation, which was only a problem on Nvidia devices in some test cases.

The one true guide to baking materials in Blender

· 10 min read
Jake S. Del Mastro
Some Kind of Frog

Real time rendering performance is often limited by 3D assets as much as it's limited by code. Good low poly assets inevitably rely on baking, the process of transferring details from a high poly mesh with a complex material to a low poly one with a much simpler material. Unfortunately, however, there seems to be a lack of info regarding baking around. Especially in Blender, things can sometimes be a bit unintuitive regarding baking. In the process of working on my game, A Short Odyssey (ASO), I came up with a workflow that works quite well for me, so I will share it with you today.

For this tutorial we are going to use this wooden bowl model from the fantastic website Polyhaven.

Bowl Rendered

Generating Phase Function LUTs with MiePlot

· 8 min read
Jaker
Senior Frog @ GP

In computer graphics, Mie theory describes the interactions between light and large (relative to the wavelength of light) particles in a medium. Simulating it is crucial in rendering convincing volumetric effects like fog, clouds, and smoke.

This article is primarily aimed at graphics programmers who already have a volume renderer that has a pluggable phase function. In other words, this is a tutorial about producing phase functions that you can easily use in a volume renderer.