[vtkusers] mutli-pass framework, volume rendering without a vtkcamerapass

Bryn Lloyd lloyd at itis.ethz.ch
Wed Jun 8 12:22:51 EDT 2011


Hi

 

If I want to use the multi-pass framework to do volume rendering in an
existing OpenGL context, with an existing camera/lights etc how is the best
way to proceed?

 

I have created a function called Render(), which basically calls:

void VtkRender()

{

opaquePass->Render(state);

peelingPass->Render(state);

volumetricPass->Render(state);

overlayPass->Render(state);

}

 

I don't make these passes a delegate sequence of a vtkCameraPass. In
addition I don't perform a light pass using vtkLightsPass. Instead the
camera pass and light passes are done before calling VtkRender() using
non-VTK code.

For opaque and translucent props it works quite well. 

 

However, the volumetric pass does not work yet. I have stepped through the
code in Debug mode and checked all calls done during the volume rendering
(using a vtkVolumeRayCastMapper).

It obviously is trying to get certain values (e.g. transformations) from the
vtkCamera of the vtkRenderer. This vtkCamera is otherwise not used and not
setup or synched with the existing non-VTK camera.

 

 

How can I set up the vtkCamera so that this will work? Could there be
another reason why it is not working for volume rendering, but working
correctly for opaque/depth peeling render passes?

 

If I get this to work I will add a self contained example to the Wiki
Examples.

 

Thanks for any hints

Bryn

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20110608/d0dcb030/attachment.htm>


More information about the vtkusers mailing list