[vtkusers] Issues with rendering streaming 3D data

Neel Patel 0-0-0 siva.yedithi at gmail.com
Thu Jul 13 20:30:03 EDT 2017


Hi all. I'm trying to render streaming 3d data and I have a couple questions. 

1) Does anyone have experience doing this and if so how did you structure
your code to update data and render it, and how fast was it?

2) I have some code that does work for about a couple seconds before I get
an exception in Kitware.VTK.dll as I'm using ActiViz. If I take out the
render call in the code below, it seems to be ok. It only seems to have a
problem rendering. 

                try
                {
                    byte[] myByteArray =StreamObject.Bytes;

                    GCHandle gPointer = GCHandle.Alloc(myByteArray,
GCHandleType.Pinned);
                   
imageImport.SetImportVoidPointer(gPointer.AddrOfPinnedObject());
                    imageImport.Update();
                    imageImport.Modified();

                    // Set up renderer
                    vtkRenderer renderer =
renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); 
                    //renderer.ResetCamera();

                    // Create transfer mapping scalar value to opacity
                    vtkPiecewiseFunction opacityTransferFunction =
vtkPiecewiseFunction.New();
                    opacityTransferFunction.AddPoint(70, 0.0);
                    opacityTransferFunction.AddPoint(255, 0.1);

                    // Create transfer mapping scalar value to color
                    vtkColorTransferFunction colorTransferFunction =
vtkColorTransferFunction.New();
                    colorTransferFunction.AddRGBPoint(0.0, 0.0, 0.0, 0.0);
                    //colorTransferFunction.AddRGBPoint(100.0, 0.0, 0.0,
1.0);
                    colorTransferFunction.AddRGBPoint(255.0, 1.0, 1.0, 1.0);

                    // The property describes how the data will look
                    vtkVolumeProperty volumeProperty =
vtkVolumeProperty.New();
                    volumeProperty.SetColor(colorTransferFunction);
                   
volumeProperty.SetScalarOpacity(opacityTransferFunction);
                    //volumeProperty.ShadeOn();
                    //volumeProperty.SetInterpolationTypeToLinear();

                    // The mapper / ray cast function know how to render the
data
                    vtkVolumeRayCastCompositeFunction compositeFunction =
vtkVolumeRayCastCompositeFunction.New();
                    vtkVolumeRayCastMapper volumeMapper =
vtkVolumeRayCastMapper.New();
                   
volumeMapper.SetVolumeRayCastFunction(compositeFunction);

                    // Link the volume render object to the byte array data
                    // volumeMapper.SetInput(myVtkImageData);
                    volumeMapper.SetInput(imageImport.GetOutput());
                    volumeMapper.Modified();

                    // The volume holds the mapper and the property and can
be used to position/orient the volume
                    vtkVolume volume = vtkVolume.New();
                    volume.SetMapper(volumeMapper);
                    volume.SetProperty(volumeProperty);
                    volume.Modified();

                    // Add volume to renderer
                    renderer.AddVolume(volume);
                    renderer.SetBackground(0, 0, 0);
                    renderer.Modified();

                    renderer.GetRenderWindow().Render();
                    gPointer.Free();
                    myByteArray = null;


                }
                catch (Exception ex) {
                    throw;
                } 


The issue is that when the program starts the first pass through the
renderer goes through and it displays as it should, the second time I get an
access violation exception. If I use similar coed for 2D however it seems to
run fine. 

Any help, tips, general advice on streaming with VTK are welcome. 

                                    Regards,
                                          Neel



--
View this message in context: http://vtk.1045678.n5.nabble.com/Issues-with-rendering-streaming-3D-data-tp5743967.html
Sent from the VTK - Users mailing list archive at Nabble.com.


More information about the vtkusers mailing list