News
Youtube Channel CG
Voxelization
Representing massively large and highly detailed scenes is one of the main goals in computer graphics. Currently, voxel representations are one promising possibility to increase the level of detail for massive scenes. The Sparse Voxel Octree (SVO) is a common data structure to store those scenes in a memory efficient manner, because empty subspaces are encoded by single pointers or even single bits and do not use any additional memory. Creating those scenes from scratch by setting single voxels is a tedious task. Therefore, a voxelization of triangle meshes and its attributes is a feasible alternative to obtain scenes with a high level of detail.
The GPU is used to increase the performance for a voxelization of 3D models with a high triangle count and a creation of voxel representations with a high resolution. Since the GPU memory is limited and the triangle meshes or the SVO could exceed that limit, we propose a grid-free out-of-core voxelization that allows a streaming of triangles and voxels. Therefore, only parts of the triangle mesh and parts of the SVO need to be present on GPU at a time.
To achieve this processing in a streaming manner, a subdivision and sorting of triangles is needed. The sorting provides the same order of triangles as the parts of the SVO will be created. Due to the extent of triangles, voxels are created which do not follow this order. Therefore, we use a queue to maintain voxels between the iterations until they can be used for the creation of the SVO. Additionally, we introduce a buffer of queues which allows an attribute creation for the nodes of the SVO only if all child nodes of a parent are available. This leads to the possibility of order-dependent or multi-pass operations for the determination of attributes. A reconstruction of measured sensor data with a high resolution might benefit from that attribute creation as well.