5 ms·
I think it's a big deal because of efficient micropolygons. I know for myself a custom sub-pixel shaded micropolygon renderer running natively on vulkan is what
by ArtWomb 4y ago
I think it's a big deal because of efficient micropolygons. I know for myself a custom sub-pixel shaded micropolygon renderer running natively on vulkan is what I am looking forward to most for xmas holiday hacking ;)
https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf https://advances.realtimerendering.com/s2021/Karis_Nanite_SI...
Building a micropolygon rendering pipeline
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...
- bitL 4y agoReading the CMU article, how do you actually make it fast? For each frame you need to collect all objects in the scene (for ray traced scenes anything that can be reflected), split them into micropolygons (either from a triangle mesh or from parametric meshes) and then render all this at e.g. 4K. Each of these steps is extremely demanding.
- mastax 4y agoI can't remember the specifics to give you a summary, but this presentation was fascinating: https://youtu.be/eviSykqSUUw https://youtu.be/eviSykqSUUw
- xyzzy_plugh 4y agoSegmentation in CPU is pretty common as there's huge opportunity for caching. It's possible to push segmentation into GPU as an optimization but it might not be worth it if the GPU is busy enough with downstream operations. Even then you still cache the results. I would be surprised if they don't have a dynamic pipeline that can be optimized at runtime.
- Jasper_ 4y agoYou do as much of that offline as possible. The "split them into micropolygons" happens at editor time, along with a search tree that makes it really easy to find them. It's still very demanding! But the goal is that you bake as much of it that you can.
- xyzzy_plugh 4y agoI suppose it depends on what you define "editor time" to be. Importing an asset into a scene live appears to be pretty seamless, at least in comparison to preprocessing stages of yore.
- awesomeMilou 4y agoThe segmentation happens during importing assets into the editor. 50% of the talk on Nanite is concerned with their new compression system for geometry, which enables seemless segmentation of meshes due to some clever graph theory trickery.
- torginus 4y agoThis is really interesting, and brings to mind Larrabee, Intel's attempt at making a graphics card out of a chip with a ton of x86 cores, and some specialized hardware, like texture samplers, but notably no rasterizer, as that was to be done in software, like Nanite does in UE4. The traditional pipeline of `vertex shader->raster->pixel shader` has persisted basically since programmable graphics hardware has existed, it's refreshing to see some innovation now.
- djmips 4y agoNice recall about Larrabee - I seem to remember they were also going for a ray traced approach? Nanite feels like a stock 3D pipeline in most other ways when it comes to geo. Something of note for Nanite, is that they still do use pixel shaders for some of the larger triangle workloads. But yes as you point out, no pixel shaders for the smallest micropolygons - they are running in compute - it's quite amusing.