PDA

View Full Version : 3D Data Rendering Strategies



ericgorr
01-18-2006, 05:54 AM
I wanted to follow up in this old USENET thread:

<http://groups.google.com/group/comp.graphics.api.opengl/browse_frm/th...>
or
<http://tinyurl.com/d4pfq>

since I am actually now about to start working on rendering 3D
datasets.

The datasets I will be working with could easily involve Gigabytes
worth of data. The datasets are boxes. They are primarily collected by
a user using a digital camera and taking a picture at different z-stage
positions.

The implementation I eventually use would have to support interactive
rotating by the user, which I assume would involve using a smaller
number of slices during the rotation and then rendering a high-quality
version of the object once the rotation was complete.

I believe the best technique for rendering 3D Volume datasets to use is
the one described at:

<http://www.opengl.org/resources/tutorials/advanced/advanced97/notes/n...>

I am assuming that this is the general technique that all
implementations use and the quality of the output depends upon how Step
4 is handled.

Compute a series of polygons that cut through the data
perpendicular to the direction of view. Use texture
coordinate generation to texture the slice properly with
respect to the 3D texture data.

In the prior thread, it was mentioned:

"volvis provides source code & models"

I assume this is referring to the source code found at:

<http://www.gris.uni-tuebingen.de/~volsight/qglviewer/qglviewer-1.4.ta...>

I haven't taken a look at the source code yet, but I am guessing it
would contain an implementation of how to compute that series of
polygons and how to generate the appropriate texture coordinates.

How good is the technique used by this viewer?

Unfortunately, I haven't been able to compile it on my machine
(MacOSX10.4.4). ./configure complains that it cannot find qt. I have
installed qt3 (via http://darwinports.org) and tried various --with-qt=
directories. I am guessing that qglviewer1.4 used an older version of
qt or something.

I assume that:

<http://spire.stanford.edu/raptor/raptor-0.1.3.tar.gz>

would contain an alternate variant of how to compute that series of
polygons and how to generate the appropriate texture coordinates.

How good is the technique used by raptor?

However, rather then parse through this source code and adapt it for my
uses, I am considering using a cross-platform library (C++, must
compile with xcode - the Mac compiler which uses gcc underneath) which
implements a good techniques for computing the series of polygons and
generating the appropriate texture coordinates and can be licensed for
commercial uses.

Any recommendations?

I thought the SDK by fovia.com might be usable, but they apparently
don't support the Mac.

Of course, if someone like to argue in favor of an alternate technique
(Volume Splatting, for instance), I would be interested.