3 ms·
Not sure if this is the creator of the Github project, yet one improvement would be view frustrum culling. Registers 700,000 triangles even when there's nothin
by araes 2y ago
Not sure if this is the creator of the Github project, yet one improvement would be view frustrum culling.
Registers 700,000 triangles even when there's nothing visible on-screen, just because the Stanford rabbits happen to be nearby in terms of LOD.
Even something "simplistic", like LOD quadtree culling with a view frustrum would probably dramatically reduce triangle counts and speed up rending even further.
That said, still an impressive demo, and compared to what I often see done with three.js, really fast rendering speeds for the sheer quantity of instanced geometry being shown.
On pretty mediocre old hardware, circa late 2010's Celeron with integrated graphics, getting 20 fps near-field in about the worst case of display, and 40 fps with the far-field heavily LOD reduced.
- ivanjermakov 2y agoAren't other optimizing techniques are out of scope? Why would author implement frustum culling in a tech demo for dynamic LODs?
- andrewmcwatters 2y agoBecause it's a deeply integrated part of virtualized geometry. You could just cull an entire object, but the larger the associated geometry, the more unnecessary geometry you keep out of the viewport. This defeats a large selling point of virtualized geometry. It's not just about clustering and simplifying meshes from an extremely high detailed source, but also rendering the portions that are actually important. That being said, this implementation is very cool as it stands. It addresses arguably the most important actual parts of virtualized geometry, I think.
- tomovo 2y agoI'd say if it's proof of concept just to follow the process that Nanite does, then other optimizations are out of scope. However if it's supposed to achieve the same GOAL as Nanite, which I think is provide rich detail at reasonable frame rate then 1) add mode with full LOD to compare performance gains & visual impact 2) do low hanging fruit kind of optimizations as well to match whatever Unreal probably does as well.
- deleted 2y ago[deleted]