Miguelaragon’s Blog


Delaunay volumes
March 15, 2009, 4:08 pm
Filed under: Uncategorized, visualization | Tags: , , ,

This post shows some experiments I have been doing with pseudo volume rendering using Delaunay tessellations.While there are lots of techniques that can be used to display large point datasets there are very few techniques for visualizing sparsely sampled points. This is a very common situation when dealing with (astronomical) real data like galaxy redshift catalogues.

This technique does not produce “correct” volume renderings but it is very fast, uses memory efficiently and looks very cool.  This approach is based on the Delaunay tessellation of the point distribution. Densities at each point are estimated assuming that they are proportional to the volume of the contiguous voronoi cell of the point. The density value can be computed at any point inside the convex hull of the point distribution by linearly interpolating the density between the 4 vertices of the tetrahedron containing the sampling point.

This is a pesudo volume rendering. Instead of computing the integrals along the line of sight for each pixel one uses summatory of the interpolated values along the faces of the tetrahedra that intersect with the line of sight. This is just a complicated way of saying that one simply has to display the triangles using the density at each point to color them. While this is technically wrong one can see that for visualization purposes it actually works very well. It was the advantage of not requiring any computation from the CPU since all the drawing is done in the graphics card.

This is a very simple OpenGL application. It still needs a lot of work. In regions with high density one could use GLpoints or point quads. I disable z-ordering so it is not possible to assign opacity to the triangles. I am also working on a .obj file loader to visualize objects like 3D survey masks, fancy axis, field lines, etc.

The advantage of using triangulation becomes clear in the low-density regions. One can resolve filamentary structures with less than 30 particles!

The images are rendering from a low-res N-body simulation. The mass per particle is in the order of 10^11 solar masses.

Advertisements

6 Comments so far
Leave a comment

cool

Comment by mk

thanks, I put a movie showing the rendering in real time here: thanks, http://www.vimeo.com/3990223

cheers,

MA

Comment by Miguel Angel

Hi !
This is nice.
You say “but it is very fast”. What do you use to programming C++?
Thank you !

Comment by Catalin

Hi Catalin, thanks. Yes I use c++ with GLUT for windowing. The newest version is built on top of OpenFrameworks. The rendering is very fast since it is only drawing triangles. I only becomes slow when you get too close to a large group of triangles. I don’t know how to fix that.

Comment by Miguel Angel

It looks like you are a real professional. Did ya study about the matter? haha..

Comment by Hamseaple

Hi jeff, I am a beginner in OpenGL and graphics in general. I do astronomy for a living and try to do graphic stuff mostly in order to illustrate (astro) physical processes.

Comment by Miguel Angel




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s



%d bloggers like this: