4 ms·
Reading 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
by bitL 4y ago
Reading 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.