Basic Meshlet Compression

Mesh shaders have become increasingly popular over the last few years with UE5’s Nanite, and games like Alan Wake II. With that popularity came a wave of articles discussing how to write basic mesh shaders, and the pros and cons of different vertex and triangle limits. Those are all great, but I noticed there aren’t that many sources discussing how you might compress meshlet vertex and triangle data. The sources that do discuss the compression often gloss over details, whether it’s implementation details, how likely people are to notice the quantization, runtime performance, or discussion of alternative methods....

December 20, 2024

A Poor Man's Render Graph

Render Graphs, or “Task Graphs,” rapidly became the standard in the industry ever since Yuriy O’Donnell’s 2017 GDC presentation on Frostbite’s FrameGraph. They provide many benefits, like handling all of the synchronization barriers and resource transitions, reordering tasks for increased performance, reducing memory usage via resource aliasing, and the list goes on for miles. They’re nearly mandatory for large projects these days, given how verbose and error-prone these things would be if done manually with modern APIs like Vulkan and DX12....

July 27, 2024

Asset Pipelines Part 1

Asset pipelines are one of the pieces of game development I don’t see people talk about very often. The main concepts are often introduced and chatted about theoretically, sure: “convert your assets into binary packages, compress them, and load them at runtime,” but rarely do I find people chatting about the implementation details. It always strikes me as a little odd, because I’d argue it has the single biggest impact on development....

July 7, 2024

Generating Height Maps From Normal Maps

In this post, I want to explain how to take a normal map and generate its corresponding height map (also called displacement map). There are multiple ways to achieve this, but the one I’ll be covering in this post is the method that Danny Chan presented in Advances in Real Time Rendering at Siggraph 2018 (link here, page 16). It’s also the same method that the Call of Duty engine still uses today to generate the vast majority of its height maps....

April 5, 2024