Voxel-Like Engine

Started by
3 comments, last by Hodgman 12 years, 4 months ago
Hello all. Does anyone know how I can get started with a voxel engine or how I can start one.

Maybe a good tutorial or something. I want to experiment with the voxels because it would just be a good learning experience with 3D like stuff.
Advertisement
A Voxel is a 3d pixel, you could render a cube for each pixel and store you're world in a 3d array.

The 3d array probably wouldn't be able to store you're entire world so you could do what minecraft does and split your world into chunks and only loading the nearest 9 chunks.

You're engine would probably end up looking alot like minecraft but with much smaller cubes.

This engine would run unimaginable slow without occlusion and backface culling so make sure you implement those.

Good luck.

A Voxel is a 3d pixel, you could render a cube for each pixel and store you're world in a 3d array.

The 3d array probably wouldn't be able to store you're entire world so you could do what minecraft does and split your world into chunks and only loading the nearest 9 chunks.

You're engine would probably end up looking alot like minecraft but with much smaller cubes.

This engine would run unimaginable slow without occlusion and backface culling so make sure you implement those.

Good luck.


Voxels doesn't necessarily imply a Minecraft-like game. Minecraft may use voxels (extremely large ones) for terrain, but it uses a traditional triangle rasterizer for rendering. It's not what I would call a "voxel engine". Voxels are rendered using ray casting and can be used for more than just terrain.

[quote name='ic0de' timestamp='1323060852' post='4890592']
A Voxel is a 3d pixel, you could render a cube for each pixel and store you're world in a 3d array.

The 3d array probably wouldn't be able to store you're entire world so you could do what minecraft does and split your world into chunks and only loading the nearest 9 chunks.

You're engine would probably end up looking alot like minecraft but with much smaller cubes.

This engine would run unimaginable slow without occlusion and backface culling so make sure you implement those.

Good luck.


Voxels doesn't necessarily imply a Minecraft-like game. Minecraft may use voxels (extremely large ones) for terrain, but it uses a traditional triangle rasterizer for rendering. It's not what I would call a "voxel engine". Voxels are rendered using ray casting and can be used for more than just terrain.
[/quote]

I only meant that the engine code would resemble that of Minecraft not the actual rendered image. Since this was posted under OpenGL I gave a way to do it using basic OpenGL geometry.
If you want to use an existing voxel renderer, check out:
http://thermite3d.org/joomla/
http://www.jonof.id....pic=1664.0;wap2
Voxels are rendered using ray casting and can be used for more than just terrain.
If you want to get pedantic, there's no "one true way" to visualise voxels, just like there isn't for pixels.
Is a pixel a little rectangle (that's how it looks when visualized with nearest-neighbour interpolation)? Is a pixel a little blob (that's how it looks when visualized with bilinear interpolation)? Is it a little circle? No, it's a "sample" - a zero-sized point in space paired with a value, typically a colour. A pixel has neither size nor shape, until we choose to visualise it in such a way.
A voxel is the same, but in 3D instead of 2D. It has no size or shape or natural way of being visualized. They can also hold different values, such as colours, and/or densities, and/or distance-fields, etc...
You can visualize voxels as a 3D grid of cubes (whether rasterized or ray-traced), but that's just one way to interpret the underlying data. You could extract an isosurface from a voxel-grid of density values, but again, you're not actually looking at the voxels, but a property derived from their data.

This topic is closed to new replies.

Advertisement