It's not even that. It's a proof-of-concept example for generating continuous LOD meshes, which is something that Nanite does, but it isn't all that it does.
"This library serves as a quick placeholder or learning tool, demonstrating the basics of creating continuous LOD data."
Hmm, it's been a few years since I read through the amazing Nanite slide deck. Presumably this also renders the meshes, right? What else does Nanite do?
- software rasterization for small single pixel triangles which reduces quad overdraw
- deferred materials (only material IDs and some geometry properties are written in the geometry pass to the gbuffers, which things like normal maps, base colour, roughness maps, etc being applied later with a single draw call per material)
- efficient instancing and batching of meshes and their mesh patches to allow arrows of objects to scale well as object count grows
- (edit, added later as I forgot) various streaming and compression techniques to efficiently stream/load at runtime and reduce runtime memory usage and bandwidth like vertex quantization etc.
The Nanite tech also contains the virtual geometry / mega geometry streaming component.
Also the rendering component, which in addition to triangulating the cLOD data, also handles batching and optimisation of material draw calls, lighting and shadow casting, among other things.
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: https://youtu.be/eviSykqSUUw
It's related to that, RTX Mega Geometry refers to a new (currently Nvidia-only) set of driver APIs which enable Nanite-like geometry streaming for raytracing acceleration structures. This library could be used to generate the data to feed those APIs. There's a link to another repo demonstrating how to render this data using either rasterization via mesh shaders, or raytracing via their Mega Geometry extension.
Anyone else remember the game Messiah? I'm probably wrong, but it still feels to me like that was a much earlier version of "nanite"/dynamic LOD building. No pre-built LODs, but automatically changed the number of polygons on anything based. Didn't work very well, everything in game looked kinda "blobby". But if we're gonna call Nvidia's library an alternative Nanite, I wanna call Nanite a Messiah alternative.
Please don't do things to make titles stand out, like using uppercase or exclamation points, or saying how great an article is. It's implicit in submitting something that you think it's important.
Please submit the original source. If a post reports on something found on another site, submit the latter.
Please don't use HN primarily for promotion. It's ok to post your own stuff part of the time, but the primary use of the site should be for curiosity.
If the title includes the name of the site, please take it out, because the site name will be displayed after the link.
If the title contains a gratuitous number or number + adjective, we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is meaningful, e.g. "The 5 Platonic Solids."
Otherwise please use the original title, unless it is misleading or linkbait; don't editorialize.
Is this actual Nanite as what Unreal Engine uses? Otherwise the title is slightly misleading, seems at a glance to be nvidia's own LOD generation library which works like Nanite, but isn't The Nanite.
Nanite is Unreal’s implementation of a similar thing. The README even links to Unreal’s implementation in the references section.
reply