MAX_3D_TEXTURE_SIZE

Did I say it was impossible?

Since I wrote the volviz sample, I thought I should chime in on the motivations for using 3D Textures over 2D slices.

The 3D texture has the one advantage someone mentioned with respect to it not having to be reloaded based on the orientation of the volume. If you are using 2D textures, you are stuck with having to store 3 times that amount of texture as you need to store the slices for each of the 3 axes. (because you need to composite back to front)

The real reason that you can’t use 2D textures for that app is that it is rendering with a set of spherical shells. Those shells cannot be texture reasonably with 2D textures. The spheres are being used, because the demo uses an perspective projection. If it was using an orthographic projection, planes would have been a better representation and would have allowed 2D textures.

There are other points on volume rendering:

  1. Marching Cubes is a patented isosurface mapper. It is distinct from 3D texturing and ray casting. It is better for ceratin types of data sets.
  2. OpenGL 1.2 3D textures don’t support gradient estimation which can be important for some data sets.

A) Check out RTVIZ http://www.rtviz.com for a hardware accelerated ray casting board.

B) Check out www.kitware.com for copious amounts of code on both isosurface extraction or ray casting. Implementations or bindings include C++,Java,Tcl, and Python. Better yet, get the vtk book by Martin, Schroeder and Lorenson. It’s no less than excellent.

[This message has been edited by iss (edited 02-27-2001).]