Skip to content
0:00 / 0:00

#nanite#unrealengine5#virtualizedgeometry

A Deep Dive into Nanite Virtualized Geometry

SIGGRAPH Advances in Real-Time Rendering

9.4K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 8 people: 7 on Hacker News and 1 in engineering communities.
  • A classic. People kept recommending it from 2021 to 2026.
  • Presented by Brian Karis, Engineering Fellow at Epic Games

Advanced. Deep dive for people who know the field.

278K views5 years ago8 recommendations

Graphics and audioGame developmentRenderingBuilding a game engineGPUs, shaders and CUDA

Brian Karis explains the inner workings of Unreal Engine 5's Nanite virtualized geometry system, covering data structures, streaming, and rasterization.

Nanite, Unreal Engine 5's new virtual geometry system, enables the rendering of trillion triangle scenes at real-time framerates. This lecture will take a deep dive into how Nanite works, from mesh import all the way to final rendered pixels. Part of the SIGGRAPH 2021 Advances in Real-Time Rendering in Games course (advances.realtimerendering.com/). We will explain how the mesh-based data structure is built, streamed, decompressed, culled, rasterized, and finally shaded. Speaker Bios: Brian Karis is an Engineering Fellow in graphics at Epic Games. Most recently he has led the development of Nanite for UE5. He is most known for work on physically based shading and temporal anti-aliasing although has touched most areas of real-time computer graphics throughout his career. Prior to Epic he worked at Human Head Studios. Rune Stubbe is a Principal Rendering Programmer at Epic Games, where he focuses on Nanite development and optimization. He has previously worked on rendering technology at IO Interactive and Unity. Rune has also been active in the demoscene (as Mentor/TBC), where he has contributed widely used compression tools and several award-winning releases. Graham Wihlidal is a Principal Rendering Programmer at Epic Games, primarily working on Nanite and other UE5 initiatives. Previously, Graham worked at Electronic Arts (SEED, Frostbite, BioWare), implementing and supporting technology used in many hit games like Battlefield, Dragon Age: Inquisition, Plants vs. Zombies, FIFA, Star Wars: Battlefront, and others. While at BioWare, Graham shipped numerous titles including the Mass Effect and Dragon Age trilogies, and Star Wars: The Old Republic. Graham is also a published author and has presented at several conferences.

Why it's here

8 people recommend this

What people say. Highly recommended by graphics engineers as an exceptional, mind-blowing deep dive into modern real-time geometry pipelines and GPU-driven rendering.

u/RowYourUpboatin r/GraphicsProgramming • Recommends

SIGGRAPH: A Deep Dive into UE5's Nanite Virtualized Geometry

jjoonathanon Hacker News • Recommends

On “Full key extraction of Nvidia TSEC”

For real. The talent in the game industry is insane. Recently, I got my mind blown by the Unreal Nanite team: link to this video The core of it is a respectably sophisticated LOD building algorithm, as you might expect, but the sheer amount of engineering horsepower they put into driving it into production just boggles the mind.

jamesharton Hacker News • Recommends

On “The Matrix Awakens: Unreal Engine 5 Techdemo [video]”

If this UE5 demo is using Nanite, then it really may well just be modeled geometry. Nanite really blurs the line between geometry and texture - in a sense it’s a shader that uses triangle mesh data as if it were a texture source. This siggraph session will expand your mind: link to this video

jjoonathanon Hacker News • Recommends

On “Faster LZ is not the answer to 150-250 GB video game downloads”

It attracts truly extraordinary talent. One of many examples: link to this video . There is more technical ambition in a single slide of that project than an entire department at places I've worked. However, it also tends to demand more and pay less, so there is churn and burnout and when it comes time to triage, the triage can cut very deep. If I were to dive into the JIRA for any one of these "missing compression" incidents, I wouldn't expect to find an easy win, I would expect to find "missing compression" beneath a pile of much worse bugs like "level 2 crashes on AMD cards." So it goes.

superb_devon Hacker News • Recommends

On “Apple iPhone 15 Pro and iPhone 15 Pro Max”

Nanite has a large pre-render step, but it also changes the rendering quite significantly. (Which in some cases includes a software rasterizer running on the GPU) This is a really good deep dive if you’re interested: link to this video

jfimon Hacker News • Recommends

On “Advances in Real Time Rendering in Games”

Their YouTube channel has the excellent deep dive on the unreal engine's nanite virtual geometry system: link to this video The one on idTech8 global illumination from last year is pretty interesting too.

jjoonathanon Hacker News • Recommends

On “War stories: how Crash Bandicoot hacked the original Playstation (2020)”

If you want to see this sort of brilliant hacking on a modern system, I recommend taking a closer look at Unreal Nanite. It isn't just auto-LOD. Oh no. That's the core, but they had to do this same sort of "work around the tools they are given" to make it actually happen. Tiny triangles chug in modern GPU hardware raster pipelines -- so they wrote a GPGPU software rasterizer. They needed more bandwidth, so they wrote a compression engine. Their shaders needed better scheduling, so they abused the Z-test to do it. It's nuts! link to this video

Animatson Hacker News • Recommends

On “Finding your home in game graphics programming”

No, but it is a full time job. It's getting much more complicated. Here's an hour long talk on how Unreal Engine 5's Nanite works.1 This is a huge breakthrough in level of detail theory. Things that used to be O(N) are now O(1). With enough pre-computation, rendering cost does not go up with scene size. See this demo.2 You can download the demo for Xbox X/S and PlayStation 5, and soon, in source form for PCs. Explore 16 square kilometers of photorealistic city in which you can see a close-up view of anything. The format of assets in memory for Nanite becomes far more complicated. GPUs need a redesign again; UE5 has to do more of the rendering on the CPUs than they'd like. What they need…

jjoonathanon Hacker News • Recommends

On “Unreal Engine 5 is now available”

Yeah, but they had to go through hell to make it happen. It took a lot more effort than you might think. link to this video Some highlights: Seam staggering between levels for smooth swaps Current hardware rasterizers chug on small polys so they made a GPU software rasterizer (!) Actually it's a hybrid rasterizer, and gnarly features like derivatives are supported on both sides The GPU scheduler chugged so they abused Z-test wave repacking Streaming compression

spoileron Hacker News • Recommends

On “Why Unreal Engine 5.3 is a BIG Deal [video]”

There's a lot of techniques applied. It's not really "one new revolutionary thing" but a bunch of things and research over the past 20-30 years put together to make nanite possible. This video might shed some light link to this video

Animatson Hacker News • Recommends

On “UE5 Nanite in WebGPU”

The answer to that is in this hour-long SIGGRAPH video.1 Some of the operations needed are not done well, or at all, by the GPU. 1 link to this video

Gollapallion Hacker News • Recommends

On “Nvidia open-source nanite: continuous level of detail (LOD) mesh library”

Thanks for posting this! I'll be digging into it. It seems like a good basis for learning how the tech works. For those interested in more on continuous LOD, here's a SIGGRAPH talk where they go into some of the why and how of Unreal's Nanite (similar continuous LOD system) here: link to this video

jjoonathanon Hacker News • Mentions

On “The bullet effects in Terminator 2 weren’t CGI”

…ny given level of cleverness -- you'll often hear that it has asymptotic benefits, but those same benefits can be pulled out of rasterizers with effort comparable to what is required to make the raytracing practical. Here is a writeup of the passes you might expect to see in a modern engine: link Here's an overview of a modern geometry pipeline: link to this video…

CoolGuySteveon Hacker News • Mentions

On “Prefix sum on portable compute shaders”

Unreal Engine's Nanite technology has the same problem. They want to walk a LoD/culling tree but have to resort to the CPU just to schedule new tasks on the GPU. I wouldn't be surprised if future GPUs eliminate this requirement as it will make all Nanite Unreal Engine games run a little faster. Kind of like how a couple years after Quake came out, every GPU got fast z-buffers. link to this video

bsderon Hacker News • Mentions

On “WebGPU computations performance in comparison to WebGL”

> OpenGL is not dead until Khronos comes up with an API that is actually usable without an EE degree on GPU design and shader compilers. That isn't going to happen because everyone is, in fact, moving away from the idea of a "graphics API" altogether and simply allowing the compute systems to calculate everything. See: the Nanite renderer from EPIC: link to this video To a first and second order approximation, no one cares about graphics that aren't related to games.

Animatson Hacker News • Mentions

On “Finding your home in game graphics programming”

Oh, I think you're right. The nested FOR loops of the "Micropoly software rasterizer" are running on the GPU.1 I think. I though that was CPU code at first. They're iterating over one or two pixels, not a big chunk of screen. For larger triangles, they use the GPU fill hardware. The key idea is to have triangles be about pixel sized. If triangles are bigger than 1-2 pixels, and there's more detail available, use smaller triangles. 1 link to this video