5 ms·
I only play with game dev at a hobby level, so can someone help me understand if nanite is an automatic LoD solution?
by 6gvONxR4sf7o 5y ago
I only play with game dev at a hobby level, so can someone help me understand if nanite is an automatic LoD solution?
- rflec028 5y agoYes.
- teraflop 5y agoYes, that's essentially what it is. It runs a preprocessing step on meshes to generate a hierarchical LOD structure, and then at runtime it uses a custom software rasterizer running on the GPU(!) to dynamically render whatever level of detail is appropriate. The term "virtualized" in the description indicates that chunks of geometry are fetched on demand (analogously to virtual memory), rather than loading the entire fully-detailed mesh up front. The biggest limitation is that Nanite currently only supports rigid, non-deformable meshes, so it's mainly intended for scenery rather than characters.
- scotty79 5y agoWhat about the meshes deformed/animated by the vertex shader?
- teraflop 5y agoTo be honest, I'm not sure. I watched the Nanite tech talk (https://www.youtube.com/watch?v=TMorJX3Nj6U https://www.youtube.com/watch?v=TMorJX3Nj6U) because I find graphics technology fascinating, but I don't have any experience actually using Unreal Engine. My understanding is that the Nanite renderer completely bypasses the normal shader pipeline, and therefore deformation using vertex shaders isn't supported. This doesn't mean you can't have deformable meshes in your scene -- they just have to be rendered in a separate pass that doesn't use Nanite.
- ChikkaChiChi 5y agoThis is how I understand it as well. Currently, you can think about it like those old cartoons where parts of the background that were to be interacted with were a slightly different color to help the animators know what they had to work with. Since we are so early in the stages of Nanite tech, I expect UE6 will tout some sort of deferred and active Nanite rendering to allow for handoff for deformation.
- M4v3R 5y agoNote that you can use Nanite for almost all models in your scene and if at some point a model needs to be deformed you can swap-in a traditional mesh in its place to handle the deformations. That's how cars in the Matrix Awakens demo work, you can check that out if you enable the Nanite view and try to crash some cars.
- terafo 5y agoThat's pretty slow solution, matrix demo lags every time car crash occurs. I hope someone will figure out the faster way.
- deleted 5y ago[deleted]
- Jabbles 5y agoIs Nanite "just" software? Was there something that prevented it being invented 10, 20 years ago? Is it that its choices of detail would not be as good as what artists had to manually choose? Or does it rely on modern hardware, and if so, what specifically?
- terafo 5y agoWe got much more programmable GPUs over the years, but first consoles with GPUs that could conceivably run Nanite came out only in 2013. And Nanite really loves streaming of a lot of small data packages from drive, and for this SSD is really instrumental. That's why Nanite wasn't really feasible before(you don't really make fundamental AAA engine tech that runs only on PC if you are not Chris Roberts).
- ohgodplsno 5y agoNanite is basically a really complex compute shader reimplementing a rasterizer, along with generating LODs only for what is being seen, at the appropriate level, no matter the zoom (instead of fixed amounts of LODs) So, Compute Shaders are relatively recent, anything DirectX 9 era and before is right out. Then, you still need a solid enough GPU to run that at interactive framerates, and fast storage to stream all that data in and out. And finally, there was simply no or very little research on the subject.
- ohgodplsno 5y agoNot only is it automatic LOD, it also avoids multiple draw calls for a single pixel. If your geometry is so complex that multiple polygons would render to a single pixel in the end (say, a very complex fractal viewed from far away), Nanite also manages to crunch all these polys into one. Effectively, it makes rendering massive scenes a much more constant amount of draw calls.
- jjoonathan 5y agoYeah, but they had to go through hell to make it happen. It took a lot more effort than you might think. https://www.youtube.com/watch?v=eviSykqSUUw https://www.youtube.com/watch?v=eviSykqSUUw 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