my home page
computer.voxel





My experience with voxel engines started in 2000 with a small voxel renderer runing in MsDos. Unfortunatelly I didn't take any screenshot at that time. Rendering was done based on raytracing by using a kind of Bresenham 3D line drawing algorithm to traverse the volume in brute force way. Resolution was limited to 128x128x128 because all voxel space was kept on memory, and only 160x120 rays per frame were cast, with a 2x2 color interpolation.

Later, I did a quick test (1 hour of coding) to apply the same idea in the GPU (pixel shaders 3.0). A simple voxel was setup with a few primitives (at 128^3 resolution again), and a brute force raymarching algorithm applied again. Result, 50 fps at 640x480 with no interpolation at all.





There are many obvious improvement, like doing a hierchical ray-marching (kind of octree), or even a distance function stored in the voxel itself to allow non constant and biger steps. Anyway, the idea here is NOT to calculate any acceleration structure that could make realtime animation of voxel data impposible. Anyway, as render to texture becomes more and more feasible, may be completelly updating the voxel data and acceleraton structure without going thru the CPU is possible in few years....










iņigo quilez 2000-2006