Currently browsing tag

voxels

Voxel Renderer: Spheres and Boundaries

During the last days, I’ve been testing just how much my current renderer implementation can take. My implementation was started from scratch, based on raycasting (eg … interpolating distinct values along a line) in a huge data grid. At the moment it is without any optimization for quick free-space skipping, …

Voxel Renderer: Parallellism is key

I’ve implemented a stable version of the Amanatides and Woo algorithm for fast traversal of voxel grids and added some optimisations and support for non-square voxels. After reading up on OpenMP, I couldn’t stand having a renderer which ran an inherently parallel algorithm on just one CPU. Every ray shot …

Traversing the grid

I’ve been busy implementing the Fast Voxel Traversal algorithm by Amanatides & Woo (PDF). The base algorithm is pretty straightforward, but getting it to give the correct results for all feasible edge cases I can come up with is hard. I don’t want to stuff the code with more and …

Voxelicious

I’m going to run out of voxel-based titles and puns real soon. Until then, have some more flying cubes! The sparseness factor influences render time a lot, since there is no efficient skipping of empty space inside the voxel grid. So denser grids render at interactive framerates (>30 fps), because the …

Voxel Renderer: Sparsity

Once the basic stuff was in place, it was fairly easy (half a day’s work) to implement a renderer which supports sparse voxel fields. Next step is opacity. Generating one image at 600×600 with 64x64x64 voxels in place renders at 15 fps, but that’s without any optimization. For example, there’s …

Voxel Renderer: got it right this time

After a bit of experimenting with the boost::round functionality, the solution to the numeric instability problem was (of course) a lot simpler. The current implementation runs at 25 fps for a 600×600 resolution – pure software rendering. If you don’t know anything about volume rendering or voxels, what you can …

Birth of a Voxel renderer

In the beginning of february, I started implementing a voxel-based renderer for my PhD. Starting from scratch was painful, but it taught me a lot about 3D geometry & maths and C++. To all you C++ enthousiasts out there, print this out and put it on a wall: Every time …

Efficient rendering using Sparse Voxel Octrees

I’ve been reading a lot lately about using voxels in CG. I’ve always been fascinated by ways of moving away from the traditional polygon-based pipeline, and things are really starting to look good for voxels. Sampling all geometric and texture data on a regular grid allows for unique content, theoretically. …