What is a voxel engine and how we saw it. We tried to answer theses questions in a easy way to help you understand what we want to create here.
What is a Voxel ?
Wikipedia Definition
In 3D computer graphics, a voxel represents a value on a regular grid in three-dimensional space. As with pixels in a 2D bitmap, voxels themselves do not typically have their position (i.e. coordinates) explicitly encoded with their values. Instead, rendering systems infer the position of a voxel based upon its position relative to other voxels (i.e., its position in the data structure that makes up a single volumetric image).
Learn more about voxel on Wikipedia.
Our definition
Like Wikipedia, we thing that a voxel is a volumetric element who store data. We’ve identify two types of data that voxels can contain.
- The first type of data are the rendering data : As with the pixels, voxels is describe by their position and their color. There are the main properties used to render a voxel, but some additional could be added.
- The second type of data are the storable data : These data are not used for rendering. They are defined accordingly to the needs of the project by user. For a game, it could be a durability property when for a heatmap it could be a temperature property.
What is a Voxel Engine ?
A voxel engine is not one things. they are multiple bricks like rendering, physics, animation, conversion, … All those bricks represent the voxel engine.
Our main goals and ambitions of a good voxel engine are as follows:
- Efficient : A voxel engine should be enough optimized to display a large amount of voxels. More voxels equals more details.
- Dynamic : A voxel engine should handle creating, update, or destruction of one or more voxel(s) in the world dynamically in “real” time.
- Scalable : A voxel engine should be scalable to add features according to user needs.
- Good errors handler : A voxel engine should return good errors, well explained with stack trace.
- Documented : A voxel engine should be enough documented to be easily used.
- Portable : A voxel engine should be portable on different OS to allow multi-platform use.