Graphics‎ > ‎3D‎ > ‎

Voxel

A voxel is a pixel that managed to flee from flatland

A voxel is a value in a three-dimensional grid. A bit like a pixel in a image in a two-dimensional grid. Each voxel can contain a single piece of data, such as opacity or multiple pieces such as a color and material. A cell is a group of eight voxels that form a cube.

Content Management
As voxels always is grid based the data set can get big fast. So splitting up it in grids for streaming is a good idea.

Surface extraction
The common way to draw things is with triangles so surface extraction is used to get them. A number of algorithms for that are listed here.

Box/Minecraft Style
For each cell take the voxel with the lowest coordinates and use it to set the material for the whole cell. Each cell is a box primitive with the the coordinates of the corners is the coordinates of each voxel in the cell. For cells that are made of solid material and is beside each other there is no need to create any face on that shared side of the cells. No one can see it as it is inside the wall.
Marching cubes
This algorithm creates a more smooth surface. It works on a single cell at a time and classify each corner of the cell to be inside or outside the surface. That gives 256 possible combinations and that is used to select a layout of the triangles that exist in the cells. Cells where all the voxels generate no triangles at all.
Reference
Voxel Rendering Techniques - 2017
Math for Game Programmers: Voxel Surfing - 2016
20 years of Voxel Engines - 2015
The Poor Man's Voxel Engine - 2015
Isosurface Extraction OBBG: Open Block Building Game  - 2015
Craft - 2014
Empirecraft - 2014
Octree streaming - 2014
Overview of Modern Volume Rendering Techniques for Games - 2013. Part 1 and Part 2.
Morton encoding/decoding through bit interleaving: Implementations - 2013
Ambient occlusion for Minecraft-like worlds - 2013
How we Generate Terrain in DwarfCorp - 2013
Journal Entry 6 – Greedy Mesh Optimization - 2013
Dynamic Sparse Voxel Octrees For Next - Gen Real-Time Rendering - 2012
An Analysis of Minecraft-like Engines - 2012
3D Cube World Level Generation - 2011
Two Uses of Voxels in LittleBigPlanet2’s Graphics Engine - 2011
Minecraft Like Rendering Experiments in OpenGL 4 - 2010
Voxel-Based Terrain for Real-Time Virtual Simulations - 2010
A refined data addressing and processing scheme to accelerate volume raycasting - 2004
Generating Complex Procedural Terrains Using the GPU
Project Octant
The Transvoxel™ Algorithm
Comments