Tonmy
Hi,

I'm developing for VR using voxelfarm and unity, but I think my question fits better in this section of the forum.
In VR, when the user moves around, the LOD of cells are updated by the engine and so their geometry. This change in geometry is pretty bad in VR (it needs a huge camera clip view distance), so what I want to do is increase the LOD 0 area to mitigate this popping of geometry. (I'm refering to geometry of the mesh, as the shader part that changes mipmaps as distance increases is not really a problem)
So, the feature I'm looking for is pretty much the one in: voxel studio -> render tab -> then tweaking "LOD Zero Area", "Simplification LOD" and turning off "Simplification".

I've digged trhough the documentation and the sdk headers and tried several things 
I've managed to set the engine for my specifics VR needs, but this one still hunts me. 
* Pause for compliment *: I have to say I'm greatly impressed with the engine. Really well written and commented code, crazy strong optimization and great engine customization. Couldn't be more satisfied with the quality.

Could you shed some light on how to do this? (which classes and variables controls this. I went through all climapview, blockdata and so on trying to get this right)

Notes: Just to clarify, I'm doing a deathmatch multiplayer game with destructible terrain. So my playable map area is fixed as I have borders to not let the player pass through. I would like to tweak the LOD Zero area so the geometry doesn't pop in the user's view, or at least tweak it to balance graphics performance/geometry popping.

Thanks!

0 0
voxelfarmtorres
The render tab features in Voxel Studio can be set to your own clipmpview object in your game or application.

Look for CClipmapView::radiusLOD0. This allows you to specify how many concentric rings of LOD zero you want. This is exactly the same property used in Voxel Studio to control "LOD Zero Area".

Simplification LOD is about material blending and simplification. When meshes are simplified by the engine, you have the choice to ignore material boundaries past a given LOD. This allows dropping triangle counts for really distant objects like mountains which may not contribute much to the colors and rather appear as shapes in the horizon. This property can be set in the material library object:

CMaterialLibrary::maxHomogeneousLOD

If you want all levels to disable homogeneous simplification (that is different materials won't be simplified together) just set this to the maximum LOD possible.

We do not recommend you turn off simplification altogether, since you can still cut a lot of triangles of perfectly flat surfaces with no visual repercussion. We advise you to set all simplification errors to zero for all materials. 




0 0
Tonmy
Thanks, Torres. I really appreciate the answer and the really fast response. I've managed to implement a satisfying solution. I'll describe it as it might help others. I had already played with the radiusLOD0, but the material mesh optimization parameter was missing (it made a huge difference).

So I've followed your suggestion: on voxel studio the material's property "Mesh Optimization" is set to zero or close to zero; in unity, I increase the climapview's radiusLOD0 as required (I try to set the radius so that LOD0 will cover most part of the playable area).
To compensante the increased performance, the clipmapview's position and line of sight is fixed at the center of the map (it doesn't change according to where the player is), if it moves it's not much. Since the players are confined to a part of the map, doing that is fine and the engine won't update meshes so much.
Also, when voxelfarm first loads the scene, it loads all LOD levels (which currently is 13 in my setup). After loaded, I set unity and voxelfarm to just update the first few LOD levels (let's say the first 3 or 4 levels), just to be sure.

Cells mesh and colliders generation and import in the gpu pipeline are probably the most performance consuming tasks, and for VR, it needs constant 90 fps, dropping below that risks causing motion sickness to the user. So having a higher detailed terrain, but that rarely updates the mesh is preferable to avoid poping artifacts and stutters.
1 0