

Earlier frameworks relied on runtime shader compilation, but with this framework the shaders are precompiled and linked into the exe file of the demo. pipeline as well as the constant buffer structs, so that the shader and C++ code can agree on inputs. In this header you will find the binary code for the shaders and resource binding enums matching what you put in the. The PipelineCompiler compiles all shaders, automatically generating the resource binding according to the specified root signature, and outputs a header file for the C++ code to use. pipeline file so that shaders and C++ code links up together minimizing risk for mismatch. This allows you to specify your root signature with a clear syntax together with all shaders and constant buffer structs in the same. There are plenty of gaps in functionality.Īnother new thing in this framework is a PipelineCompiler. These APIs are not stable as I'm still exploring a lot, so I expect things to change as I add more stuff that I need for future demos.

This is based on modern concepts like pre-built pipeline objects, descriptor sets, root constants etc. But the biggest difference is of course implementing a renderer for DX12 and Vulkan with a completely new abstraction, a relatively thin layer over the commonalities of these APIs. I spent probably a little too much time on putting in SIMD support in various places, like the vector classes and image utilities, but it's fun exploring. Some of the code in this framework has been more or less just adapted from code in my previous framework, like model loading and other utils, but a lot of stuff is new also. This particular demo uses Vulkan, but I plan to release more demos in the future based on DX12 as well, depending on what makes more sense for a given demo. It is a bit similar to my old Metaballs demo from 2005, except much greater mesh density and a lot more balls, and implements the Marching Cubes algorithm on the GPU instead of on the CPU.Īlso noteworthy is that this demo is based on a new framework I've been working on for a while, which is based on DX12 and Vulkan. This demo explores the new Mesh Shader pipeline available in NVIDIA Turing GPUs. It's been quite a while, but now I have a new demo available.
