Currently browsing tag

rendering

glob

Sparse Voxel Octree Raycasting: December Progress

After a short venture into suggestive contours, I’m back on my voxel raycaster. I’ve been implementing multiple light sources and phong lighting, as well as drasticly improving the way models are loaded – this allows for even bigger voxel sets to be used. Limiting factor is now my voxelizer itself, …

View from the EGSR boat on the Seine

Eurographics Symposium on Rendering: Day 2

This is my overview of the second day of the EGSR conference, which took place from 27-29th of June, in Paris, France. For a list of authors, and download links of all papers presented, I refer to Ke-Sen Huang’s excellent page. Another great EGSR overview can be found here. Edit: …

blur_focus

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 …

octree1

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 …

work_dragon

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 …

Armadillo says booh

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

balls_resized

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 …

chart_1

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 …

interpolation_example

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 …

sparse_compare2

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 …