3 ms·
Does anyone have any theories as to how Nanite actually works? I've never heard of virtualized micropolygon geometry before and it sounds a bit buzzwordy. Do we
by johncoogan 6y ago
Does anyone have any theories as to how Nanite actually works? I've never heard of virtualized micropolygon geometry before and it sounds a bit buzzwordy. Do we think they are just loading the full model into GPU memory, or are they baking down various LODs and normal maps at compile time through some automatic process? Either way, it's a huge workflow improvement. It's just unclear what's actually happening...
- alkonaut 6y ago“Micropolygon” I assume means Reyes rendering, I.e that the polygons are created on demand from underlying geometry. Instead of various LODs you tessellate when rendering, specifically for the view so each pixel has ~1 vertex. Walk closer to the statue and it gets more triangles in tesselation.
- Miraste 6y agoBut how is it running so quickly? I've seen adaptive rendering implementations before, but they couldn't run in real time. If they are really using billions of polys they can't store them all in VRAM. Is the PS5 SSD fast enough to recalculate polys for every model in the scene every frame (Or even every few frames)?
- alkonaut 6y agoNo details yet, but hopefully that will follow soon. I don’t think the SSD but rather the GPU would be doing the tesselation... Here is a good presentation on micropolygon rendering (note: nothing says nanite works like this at all): https://www.cs.cmu.edu/afs/cs/academic/class/15418-s12/www/lectures/25_micropolygons.pdf https://www.cs.cmu.edu/afs/cs/academic/class/15418-s12/www/l...
- Miraste 6y ago> I don’t think the SSD but rather the GPU would be doing the tesselation... Ha, I phrased that badly. I meant that, if the high-poly models can't all be stored in VRAM at once, is the SSD fast enough to load them back onto the GPU every frame?
- alkonaut 6y agoIf the tesselation is performed on the GPU (surfaces uploaded to GPU in some non-triangle representation e.g image geometry/SDFs/patches) then I don’t think it’s ever viable to have the tesselated triangles loaded back from GPU memory even to RAM (never mind disk). This isn’t a lot of data. 2 triangles/1 vertex per pixel is just 8K triangles and 4K vertices every frame, that can be overwritten each frame. This is tiny. It’s <1MB!
- Miraste 6y agoAh, that makes sense. I was thinking the problem lay in loading the original meshes, but I didn't consider they could be using a smaller non-triangle format. I really hope they share more about how this works.
- pistachiopro 6y agoI wouldn't be surprised if it has something to do with "Geometry Images." Like REYES, the goal is to target pixel-sized polygons, but it handles tessellation differently. Brian Karis, the programmer speaking in the video linked this old blog post of his from his twitter when talking about inspirations for the technology: http://graphicrants.blogspot.com/2009/01/virtual-geometry-images.html http://graphicrants.blogspot.com/2009/01/virtual-geometry-im...