[vtk-developers] Unstructured Volume Rendering Mesa support

Lisa Avila lisa.avila at kitware.com
Tue Apr 4 11:37:44 EDT 2006


Hi Randall,

At 11:16 AM 4/4/2006, Randall Hand wrote:
>Well, I'll admit that I made that statement based on the fact that the 
>vtkVolumeRenderingFactory seems to have no knowledge of the other volume 
>renderers.

It doesn't need knowledge of them directly - they all use the same 
vtkRayCastImageDisplayHelper to display the image (and that is what the 
factory has knowledge of)

> From my tests:
>     * The new vtkProjectedTetrahedraMapper runs in approx 9s with good 
> results.
>     * Simply s/vtkProjectedTetrahedraMapper
>/vtkUnstructuredGridVolumeZSweepMapper/g and running takes 18minutes, and 
>gives good results.
>     * Then simply %s/ZSweep/RayCast/g and running takes about 18seconds, 
> and gives ok results (I do get a render, but there seems to be a 
> degenerate case error along the axes.. I get blank 1-pixel lines on the 
> horizontal & vertical at the exact center of the image).

Yes - the problem of "blank pixels" is in the underlying algorithm and is 
also somewhere down there on my "to do" list. :-) The problem occurs when 
the algorithm cannot predict the next cell due to degenerate face 
projections (that is - the face of a tetra projects to just a line on the 
view plane) You must have a fairly regular tetrahedralization of your 
volume (such as you would get by tetrahedralizing a vtkImageData) to see 
this problem as two crossed lines in your image. Not that it is an 
acceptable solution - but if your viewing direction does not line up 
directly down the X, Y, or Z axis, you won't see the problem. :-)

>So I was mistaken on that at least :)  Odd how the other two can magically 
>make the Mesa/OpenGL switch but the projectedTet can't.  Oh well.  How do 
>you want the patch?

No magic involved - the other two techniques are essential CPU-based and 
use OpenGL simply to display the resulting image (with several volume 
mappers all sharing the same code for that). The PT method is GPU-based and 
therefore implements its own calls to OpenGL.

You can send the modified files to me directly as email attachments.

Thank you,

Lisa








More information about the vtk-developers mailing list