History: VolumeChunkParameters
Preview of version: 3
Core of loading a volume is the struct called ChunkParameters. As this controls all aspects like the LOD, it deserves it's own article with detailed descriptions of the concepts and how the parameters are connected.
Loading Parameters
This parameters control what and how the ChunkTree loads.
SceneManager *sceneManager
As the single Chunks are tied to SceneNodes which must be created, the loading process needs the current SceneManager.
Source *src
The source of the density data, see Detailed Source Description
bool async
If this flag is set to true, the call to load doesn't wait for all Chunks to be finished, but instantly returns. To react on the finished ChunkTree, a MeshBuilderCallback has to be used.
MeshBuilderCallback *lodCallback
An interface to be called on loading single Chunks. Example usages are to hand over the triangle data to a physics engine or to display a loading progress bar.
Real scale
The resulting total volume mesh might be highly detailed and the resulting meshes can be scaled quite a bit. For example a GridSource could have 256*256*256 values representing a 512*512*512 volume. But that doesn't mean that the resulting mesh has to stay in that size. It can have enough details to be scaled by a factor of 10 or more.
size_t createGeometryFromLevel
In some use cases, the camera might be always close to the volume mesh, think of an Ego-Shooter on terrain for example. So there is no need to load the really low resolution LOD levels as the camera never moves far enough away so they get displayed. With this parameter, the loading of them can be skipped.
LOD Parameters
Real baseError
Real errorMultiplicator
Real skirtFactor
Real maxScreenSpaceError
Updating parts of the ChunkTree
Vector3 updateFrom
Vector3 updateTo
Debug Parameters