Instanced Indirect Rendering in UE4

Computes everything in compute shaders on the GPU, including LODs and frustum culling. No GPU-CPU stalls anymore, it’s faster than HISM or ISM. Since around 4.22 Epic has exposed indirect rendering via the RHI mostly because of Niagara, but this is a custom rendering component so there’s no overhead and is therefore faster where it […]

Read More

Merge-instancing in UE4

Implemented merge instancing in UE4 to render different meshes in a single draw call. Large meshes are multiple instances. Can render an entire level in a single draw call. Based on an older SIGGRAPH paper by Emil Persson of Epic Games. All the colored parts in the video below are one single draw call!

Read More

Improve linking times by an order of magnitude in UE4

The following requires a source-built Unreal Engine 4, launcher builds won’t work. Ever wanted to improve linking times by x10? What you need is incremental linking! Incremental linking as the name suggests only links files that have changed since the last time linking was done, which in my particular case means that 2766 source files […]

Read More

Script to build everything in Unreal Engine 4

There comes a time in every self-respecting game developer’s life when they have to rebuild the entire engine along with the game they’re making. This usually happens when installing the latest version of Visual Studio that came with compiler improvements to MSVC. What you typically want to do is ensure that everything gets recompiled properly […]

Read More

Sign in to Linux from Windows via Yubikey

Introduction If you’re as excited as me about signing into your Linux server from your Windows machine and completely ditching passwords and private keys stored on your computer in the process then this is the one and true guide for you!I’ve been wanting to do this ever since I’ve bought my first two Yubikey NEO […]

Read More

Sorting parallel arrays in UE4

Sorting parallel arrays a.k.a. Structure of Arrays (SOA) is not that easy in UE4 since the default sort implementation can only work on one array at a time. As far as I know, there’s no easy way to get it to work with SOAs since element swapping happens via hardcoded calls to TArray::Swap(), so what […]

Read More

Twitter

Body part marker #UE4 editor extension that hijacks the static mesh editor viewport via ugly c++ hacks. Marked vert… twitter.com/i/web/status/1…
Implemented instanced indirect rendering in UE4 to compute everything on GPU including LODs and culling. No GPU-CPU… twitter.com/i/web/status/1…
Implemented merge instancing in UE4 to render different meshes in a single draw call. Large meshes --> multiple ins… twitter.com/i/web/status/1…