To repeat what I said, I don’t think this is the best smooth terrain can offer. As has been mentioned before in the thread, the biggest omission has been occlusion culling IMO - this is something that has been easy to bake for a long time (which is what “any other engine from 2006” does - think portal visibility, BSP splits, etc…), but very very hard to make dynamic (it’s only in recent times that we’ve seen approaches like hierarchical Z-buffer or software raster become viable).
I’m not so confident. For cubes, it’s a pretty tractable problem because all the faces are planar and so merging them does not change the shape of the surface. This isn’t true for smooth terrain; you’d need to start considering angle and curvature, at which point you’re in dynamic decimation territory.
Also - Minecraft does not use greedy meshing; their block model rendering approach is not compatible with it. And again - I have no reason to believe triangle count is the problem here; the topology is sane, the triangles have good area, and are far from the size where the 2x2 clusters would introduce steep overdraw costs due to derivative calculations..
As a further case study, I was actually contemplating getting rid of the greedy mesher I implemented in Daydream - my own voxel renderer - because it was eating up too much CPU time. That’s in Rust, one of the fastest languages around, and I was using one of the most advanced binary greedy meshing techniques around. None of these greedy meshing optimisations are a given - in most cases, they just make the wireframe view look pretty, not the profiler.
