DigitalLibrarian / VS2010Projects

Bunch of unorganized mess
1 stars 1 forks source link

Level of Detail #11

Open DigitalLibrarian opened 8 years ago

DigitalLibrarian commented 8 years ago

Dynamic level of detail rendering for near vs far away objects.

Expected to give us more performance, so the geometry queries should be cheaper on the low LOD calls.

May involve rebuilding more consolidated and compacted chunk meshes. Or even defragging entire chunks into a single composite "far away terrain" mesh. Lots of options to vet and lots of research left to do here.

DigitalLibrarian commented 8 years ago

Sparse Voxel Oct Trees will go along way to enable this. Vertex buffers can be queried from the trees suitable for direct video card load, based on the camera position/orientation.

Objects far away in the tree will have face voxels merged into giant meshes and cuboids using finer and finer resolutions approaching the camera, unless the nearest zone where voxels are rendered 1:1.

This will require some 3d texture sampling.

DigitalLibrarian commented 8 years ago

Some things we might keep at all oct tree nodes for LOD :

DigitalLibrarian commented 8 years ago

Chunked LOD : http://cri5ti.com/game/2015/09/27/chunked-LOD/

DigitalLibrarian commented 8 years ago

Index of Isosurface extraction algorithms : https://swiftcoder.wordpress.com/planets/isosurface-extraction/

DigitalLibrarian commented 8 years ago

Thesis on massive model rendering : http://blogs.agi.com/insight3d/wp-content/uploads/2009/02/patrick-cozzi-ms-thesis.pdf

Lots of great but only tangentally related stuff there

DigitalLibrarian commented 8 years ago

The prevailing idea is that we store a chunk at each level of the lod tree. Except that each level uses a bigger and bigger sized "voxels", and thus a more coarse grained sample. As we iterate the tree looking for chunks to render, we compute how deep to go based on distance from camera.

This really necessitates separating the meshing from the chunk class. The chunk class really just becomes the most interactive/rich model for player local simulation. Most of the world won't even be loaded as chunk instances. But rather, the much more lightweight LOD meshes.

Will need a scaling factor in shader and in lod chunk class.

DigitalLibrarian commented 8 years ago

17 will providing the rendering engine for the first iteration.