4 ms·
> The simplest being space as the game world increases in size the amount vowels grows with the 3rd power. Not quite. Not unless you store the voxels in a thr
by audunw 8y ago
> The simplest being space as the game world increases in size the amount vowels grows with the 3rd power.
Not quite. Not unless you store the voxels in a three dimensional grid structure, which you wouldn't do for anything but the most simple applications.
If your game world is anything like the real world, most of it is empty space. Additionally, you usually don't have to store realistic data for the interior of the models.
You'll use a datastructure that exploits this. The most common and simple one for voxels would be sparse voxel octrees.
In addition to this, you can use compression techniques for both texture data and geometry. Most of this data will be relatively predictable.
I'd wager that the data for a modern efficient voxel implementation grows at roughly the same rate as a modern polygon based implementation. Most models these days have a quite high density of polygons after all. No surface in the real world is completely flat. As the article mentions, when you have a high density of polygons, you're using a lot of data to store the positions of each vertex, while in a voxel datastructure that data is implicit.
I think the only real problem with voxels when competing with modern polygon engines, is animation. Polygon models have a huge benefit there. Like you said though, you might want to use voxels for part of the game. I know that John Carmack was interested in using it for static landscape and buildings, and saw it as a natural extension of the megatexture technology.
- laythea 8y agoIf this is a destructible environment, they would need to store interior details to render exposure in any real application. Animation is very hard. Mathematics can help here, but the results look unnatural and fairly shoddy (see the building doing a simple sinusoidal based sway in their video). The problem is essentially one of scale. With polygons, we only need to animate the vertices. With this, we need to animate every voxel. This presents massive opportunities, however also massive challenges both for the machine performing the computations and also the software engineers trying to get realistic animations.