Currently browsing tag

graphics

Octrees are your friends

After some painstaking debugging (I guess every programmer can start a post like this), I got my Sparse Voxel Octree-based raycaster working. It’s still all CPU-based, to keep things simple for now. As you can see from the following false color images, the efficient skipping of empty space results in …

Ray / Octree traversal: Parametric Algorithm

I’m implementing my current ray-octree intersection algorithm using an adapted version of the Revelles 2000 paper An efficient parametric algorithm for octree traversal, and after some painstaking debugging, I think I found a bug in the paper’s text. which seems to be acknowledged in this 2005 google groups discussion as …

Ray / Octree traversal

Since the basic work on my voxel raycaster is finished (Crunching voxels with 3D DDA – generalized Bresenham – in a 3D array), it’s time to start looking at hierarchical structures and the methods of switching between several Levels of Detail, which is the direction my PhD will be heading …

Voxel Raycaster: Enter the Stanford zoo

If you’ve looked at some computer graphics literature before, you’ve probably noticed that a lot of models are used over and over again, like the Utah Teapot. Last days, I’ve been working on import functions which allow me to load the Stanford standard benchmark models in and render them, voxelized. …

It’s alive!

First rough video of my current Voxel Renderer implementation. It’s nothing too exciting, just showing that the Proof Of Concept actually works in real-time. The flyby is on the edge of the voxel field, since inside it’s just … trippy. This is a 512x512x512 field with 8 bytes per datapoint …

The 32/64 bit DLL confusion on Windows 64-bit

Since I’m developing my PhD renderer for multiple target systems (Win32, x64, LInux, …) I started using the excellent freeGlut project for simple OpenGL windowed output. So after finding the Windows binaries compiled (and maintained) by Max Martin Payne, I look at the contents of the zip file. I was …

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: 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 …

Volume Rendering : An Overview

I made a presentation which outlines the different methods for Volume Rendering, going into detail about Sparse Voxel Octrees ray casting. It gives a good overview on how to tackle the problem of rendering huge datasets. Keywords: Direct volume rendering, texture mapping, splatting, ray marching, octree, kd-tree, memory management, GPU. …