I'm attempting to render an unstructured dataset that contains 1 vector
field and 7 scalar fields.  I want to map Color & Opacity to one of
the 1 scalar fields (both to the same one) and volume render it.  I can
do this in Paraview easily (screenie attached), but my VTK code returns
a blank black window everytime.  Am I missing something here?
<br><br>I'm doing it all offscreen on an SGI Irix box (Onyx340) with
the VTK 5.0 Branch installed &amp; MangledMesa.&nbsp; The code I'm using is
below:<br><br>==============================<br>#include &lt;vtkColorTransferFunction.h
&gt;<br>#include &lt;vtkDataSetReader.h&gt;<br>#include &lt;vtkPiecewiseFunction.h&gt;<br>#include &lt;vtkUnstructuredGridVolumeRayCastMapper.h&gt;<br><div id="mb_0"><div>#include &lt;vtkUnstructuredGrid.h&gt;<br>#include &lt;
vtkDataSet.h&gt;
<br>#include &lt;vtkRenderWindow.h&gt;<br>#include &lt;vtkRenderer.h&gt;<br>#include &lt;vtkRenderLargeImage.h&gt;<br>#include &lt;vtkPNGWriter.h&gt;<br>#include &lt;vtkVolumeProperty.h&gt;<br>#include &lt;vtkDataSetTriangleFilter.h


&gt;<br>#include &lt;vtkImagingFactory.h&gt;<br>#include &lt;vtkGraphicsFactory.h&gt;<br>void main(void) {<br>&nbsp;&nbsp;&nbsp; vtkGraphicsFactory *factGraphics = vtkGraphicsFactory::New();<br>&nbsp;&nbsp;&nbsp; factGraphics-&gt;SetUseMesaClasses(1);
<br>&nbsp;&nbsp;&nbsp; factGraphics-&gt;SetOffScreenOnlyMode(1);<br>&nbsp;&nbsp;&nbsp; factGraphics-&gt;Delete();<br>&nbsp;&nbsp;&nbsp; vtkImagingFactory *factImage = vtkImagingFactory::New();<br>&nbsp;&nbsp;&nbsp; factImage-&gt;SetUseMesaClasses(1);<br>&nbsp;&nbsp;&nbsp; factImage-&gt;Delete();
<br>&nbsp;&nbsp;&nbsp; vtkDataSetReader *reader = vtkDataSetReader::New();<br>&nbsp;&nbsp;&nbsp; reader-&gt;SetFileName(&quot;../VTK/step_127.vtk&quot;);<br>&nbsp;&nbsp;&nbsp; reader-&gt;ReadAllScalarsOn();<br><br>&nbsp;&nbsp;&nbsp; vtkDataSetTriangleFilter *tri = vtkDataSetTriangleFilter::New();
<br>&nbsp;&nbsp;&nbsp; tri-&gt;SetInput(reader-&gt;GetOutput());<br><br><br>&nbsp;&nbsp;&nbsp; vtkColorTransferFunction *color = vtkColorTransferFunction::New();<br><br>&nbsp;&nbsp;&nbsp; color-&gt;AddRGBPoint(250, 0, 0, 1);<br>&nbsp;&nbsp;&nbsp; color-&gt;AddRGBPoint(450, 1, 0, 0);
<br>&nbsp;&nbsp;&nbsp; color-&gt;AddRGBPoint(2600, 1, 1, 0);<br>&nbsp;&nbsp;&nbsp; color-&gt;AddRGBPoint(5000, 1, 1, 1);<br><br>&nbsp;&nbsp;&nbsp; vtkPiecewiseFunction *opacity = vtkPiecewiseFunction::New();<br>&nbsp;&nbsp;&nbsp; opacity-&gt;AddPoint(250, 0.1);<br>&nbsp;&nbsp;&nbsp; opacity-&gt;AddPoint(450, 
0.1);<br>&nbsp;&nbsp;&nbsp; opacity-&gt;AddPoint(2600, 0.25);<br>&nbsp;&nbsp;&nbsp; opacity-&gt;AddPoint(5000, 1.0);<br><br>&nbsp;&nbsp;&nbsp; vtkVolumeProperty *volProp = vtkVolumeProperty::New();<br>&nbsp;&nbsp;&nbsp; volProp-&gt;SetColor(color);<br>&nbsp;&nbsp;&nbsp; volProp-&gt;SetScalarOpacity(opacity);
<br>&nbsp;&nbsp;&nbsp; volProp-&gt;SetInterpolationTypeToLinear();<br><br>&nbsp;&nbsp;&nbsp; vtkUnstructuredGridVolumeRayCastMapper *mapper =<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkUnstructuredGridVolumeRayCastMapper::New();<br>&nbsp;&nbsp;&nbsp; mapper-&gt;SetScalarModeToUsePointFieldData();
<br>&nbsp;&nbsp;&nbsp; mapper-&gt;SelectScalarArray(&quot;Temperature&quot;);<br>&nbsp;&nbsp;&nbsp; mapper-&gt;SetInput(tri-&gt;GetOutput());<br><br>&nbsp;&nbsp;&nbsp; vtkVolume *volume = vtkVolume::New();<br>&nbsp;&nbsp;&nbsp; volume-&gt;SetMapper(mapper);<br>&nbsp;&nbsp;&nbsp; volume-&gt;SetProperty(volProp);
<br>&nbsp;&nbsp;&nbsp; volume-&gt;Update();<br>&nbsp;&nbsp;&nbsp; vtkRenderWindow *renWin = vtkRenderWindow::New();<br>&nbsp;&nbsp;&nbsp; vtkRenderer *ren1 = vtkRenderer::New();<br>&nbsp;&nbsp;&nbsp; renWin-&gt;OffScreenRenderingOn();<br>&nbsp;&nbsp;&nbsp; renWin-&gt;AddRenderer(ren1);<br><br>&nbsp;&nbsp;&nbsp; ren1-&gt;AddVolume(volume);
<br>&nbsp;&nbsp;&nbsp; ren1-&gt;ResetCamera();<br>&nbsp;&nbsp;&nbsp; renWin-&gt;SetSize(1024, 1024);<br>&nbsp;&nbsp;&nbsp; renWin-&gt;Modified();<br><br>&nbsp;&nbsp;&nbsp; vtkRenderLargeImage *w2if = vtkRenderLargeImage::New();<br>&nbsp;&nbsp;&nbsp; w2if-&gt;SetInput(ren1);<br>&nbsp;&nbsp;&nbsp; w2if-&gt;SetMagnification(1);
<br><br>&nbsp;&nbsp;&nbsp; vtkPNGWriter *png&nbsp; = vtkPNGWriter::New();<br>&nbsp;&nbsp;&nbsp; png-&gt;SetInput(w2if-&gt;GetOutput());<br>&nbsp;&nbsp;&nbsp; png-&gt;SetFileName(&quot;output.png&quot;);<br>&nbsp;&nbsp;&nbsp; png-&gt;Write();<br>}<br>===============</div></div><br clear="all">
<br>-- <br>Randall Hand<br>Visualization Scientist, <br>ERDC-MSRC Vicksburg, MS<br>Homepage: <a href="http://www.yeraze.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.yeraze.com</a>