private void CreateSurfaceRendering() { _contourFilter = new vtk.vtkContourFilter(); _contourFilter.SetInput(_volumeGraphic.GetImageData()); _contourFilter.SetValue(0, _volumeGraphic.GetRescaledLevel()); vtkPolyDataNormals normals = new vtk.vtkPolyDataNormals(); normals.SetInputConnection(_contourFilter.GetOutputPort()); normals.SetFeatureAngle(60.0); vtkStripper stripper = new vtk.vtkStripper(); stripper.SetInputConnection(normals.GetOutputPort()); vtkPolyDataMapper mapper = new vtk.vtkPolyDataMapper(); mapper.SetInputConnection(stripper.GetOutputPort()); mapper.ScalarVisibilityOff(); _vtkActor = new vtk.vtkActor(); _vtkActor.SetMapper(mapper); _vtkActor.GetProperty().SetSpecular(.3); _vtkActor.GetProperty().SetSpecularPower(20); ApplySetting("Opacity"); ApplySetting("Level"); }
private vtkProp CreateVolumeRendering() { _opacityTransferFunction = new vtkPiecewiseFunction(); _opacityTransferFunction.ClampingOff(); _colorTransferFunction = new vtkColorTransferFunction(); _colorTransferFunction.SetColorSpaceToRGB(); _colorTransferFunction.ClampingOff(); SetOpacityTransferFunction(); SetColorTransferFunction(); vtkVolumeProperty volumeProperty = new vtkVolumeProperty(); volumeProperty.ShadeOn(); volumeProperty.SetInterpolationTypeToLinear(); volumeProperty.SetColor(_colorTransferFunction); volumeProperty.SetScalarOpacity(_opacityTransferFunction); volumeProperty.SetDiffuse(0.7); volumeProperty.SetAmbient(0.1); volumeProperty.SetSpecular(.3); volumeProperty.SetSpecularPower(20); //vtkOpenGLVolumeTextureMapper2D volumeMapper = new vtkOpenGLVolumeTextureMapper2D(); //vtkOpenGLVolumeTextureMapper3D volumeMapper = new vtkOpenGLVolumeTextureMapper3D(); //volumeMapper.SetPreferredMethodToNVidia(); //volumeMapper.SetSampleDistance(1.0f); //int supported = volumeMapper.IsRenderSupported(volumeProperty); vtkFixedPointVolumeRayCastMapper volumeMapper = new vtkFixedPointVolumeRayCastMapper(); //vtkVolumeRayCastMapper volumeMapper = new vtkVolumeRayCastMapper(); volumeMapper.SetInput(_volumeLayer.GetImageData()); ////vtkVolumeRayCastCompositeFunction rayCastFunction = new vtkVolumeRayCastCompositeFunction(); ////volumeMapper.SetVolumeRayCastFunction(rayCastFunction); //vtkVolumeRayCastIsosurfaceFunction rayCastFunction = new vtkVolumeRayCastIsosurfaceFunction(); //volumeMapper.SetVolumeRayCastFunction(rayCastFunction); _vtkVolume = new vtkVolume(); _vtkVolume.SetMapper(volumeMapper); _vtkVolume.SetProperty(volumeProperty); return(_vtkVolume); }