Currently browsing tag

computer graphics

Eurographics Symposium on Rendering: Day 1

Note: You can find my overview of Day 2 and Day 3 on this blog as well. I have the privilege to attend the annual Eurographics Symposium on Rendering (EGSR) in Paris, France this year. The first warm day is behind us, and it’s time to reflect on and tell about …

Introducing Moctree and Binvox2Moctree

During my PhD work, I’ve ran into a lot of practical issues with constructing and traversing sparse voxel Octrees. I’m introducing a new file format to store them, based on the .binvox file format by Michael Kashdan. The format is called .moctree, which stands for Morton-encoded Octree. It contains the leaf …

Ray / Octree traversal: Parametric algorithm implementation

This is my implementation of a Ray/Octree traversal algorithm using an adapted version of the Revelles 2000 paper An efficient parametric algorithm for octree traversal. I’ve made it compliant with IEEE double precision standard. This implementation is minimal and very bare-bones, but should be a good starting point if you want …

Voxel Raycaster: Simply Red

After a short discussion with my promotor Philip Dutré, I rewrote some parts of the basic grid structure to be more compatible with the uninevetable introduction of an octree-based system. No shotgun surgery for me – first I planned it on paper. REAL ACTUAL PAPER. I finished this week by …

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 …

Mafia II: Lighting analysis

I’m having a playthrough of Mafia II at the moment – went into it with a bit of hesitation because of the mixed reviews, but turns out it’s pretty okay. It focuses heavily on the story-based content, so just don’t go in expecting a free-roaming adventure, because besides buying clothes …

Structure From Motion: Heads

So, we’ve been busy building a good light stage during the last week. We captured some rotating heads (including our professor’s) and ran them through our Structure From Motion pipeline (using Point-Based Multiview Stereo), which could now be run on several machines in the computer rooms. Steven wrote a script …