[vtkusers] seeking for help on volume rendering

Amy Squillacote amy.squillacote at kitware.com
Wed Aug 23 17:07:56 EDT 2006


If you want your sphere to be in color, you need to create a 
vtkColorTransferFunction and pass it to SetColor in the 
vtkVolumeProperty instead of the vtkPiecewiseFunction you're using now.

- Amy

Jian Wu wrote:
> Thanks, Alark.
>
> I tried your methods and found a better one as below.
>
>     tfun AddSegment 0 0.0 0.01 0.0
>     tfun AddSegment 0.2 1.0 255 1.0
>
> This time, I got a gray sphere. I don't know why there are no colors 
> as shown on the other one. Anyone knows why?
>
> Jian Wu
>
> On 8/23/06, *Alark Joshi* <alark_j at hotmail.com 
> <mailto:alark_j at hotmail.com>> wrote:
>
>     The transfer function in your case is set to 1 for all values of
>     density in the volume. That is most probably causing the 'dark cube'.
>      
>     Try something like
>      
>         tfun AddSegment 0 0.0 55 0.2
>         tfun AddSegment 55 0.2 255 1.0
>
>     or even
>         tfun AddSegment 0 0.0 255 1.0
>
>     Hope that helps.
>      
>     Alark
>
>
>
>      
>
>         ------------------------------------------------------------------------
>         Date: Wed, 23 Aug 2006 13:43:19 -0400
>         From: eewujian at gmail.com <mailto:eewujian at gmail.com>
>         To: vtkusers at vtk.org <mailto:vtkusers at vtk.org>
>         Subject: [vtkusers] seeking for help on volume rendering
>
>         Hi, everyone,
>         I'm a new VTK user. I was failed to produced the similar
>         results for a sample code I came upon with in the book "The
>         VTK User's Guide ( VTK4.4)". Page 122. Here is the code that I
>         used. I made a few modification 'cause it is incomplete and
>         has a few obvious errors for the original one. It is supposed
>         to display two similar spheres. But I found the one given by
>         ray-casting was incorrect. It displayed as a dark cube. Is
>         there anyone know the reason? Thanks!
>
>         Jian Wu
>
>         ######################################################################
>         package require vtk
>         package require vtkinteraction
>
>         # Create the standard renderer, render window
>         # and interactor
>         vtkRenderer ren1
>         vtkRenderWindow renWin
>             renWin AddRenderer ren1
>         vtkRenderWindowInteractor iren
>             iren SetRenderWindow renWin
>
>         # Create a geometric sphere
>         vtkSphereSource sphere
>             sphere SetRadius 20
>             sphere SetCenter 70 25 25
>             sphere SetThetaResolution 50
>             sphere SetPhiResolution 50
>
>         vtkPolyDataMapper mapper
>             mapper SetInput [sphere GetOutput]
>
>         vtkActor actor
>             actor SetMapper mapper
>             [actor GetProperty] SetColor 1 1 1
>             [actor GetProperty] SetAmbient 0.01
>             [actor GetProperty] SetDiffuse 0.7
>             [actor GetProperty] SetSpecular 0.5
>             [actor GetProperty] SetSpecularPower 70.0
>
>         # Read in a volumetric sphere
>         vtkSLCReader reader
>             reader SetFileName "$VTK_DATA_ROOT/Data/sphere.slc"
>
>         # Use this tfun for both opacity and color
>         vtkPiecewiseFunction tfun
>             tfun AddSegment 0 1.0 255 1.0
>
>         # Make the volume property match the geometric one
>         vtkVolumeProperty volumeProperty
>             volumeProperty SetColor tfun
>             volumeProperty SetScalarOpacity tfun
>             volumeProperty ShadeOn
>             volumeProperty SetInterpolationTypeToLinear
>             volumeProperty SetDiffuse 0.7
>             volumeProperty SetAmbient 0.01
>             volumeProperty SetSpecular 0.5
>             volumeProperty SetSpecularPower 70.0
>
>         vtkVolumeRayCastCompositeFunction  compositeFunction
>         vtkVolumeRayCastMapper volumeMapper
>             volumeMapper SetInputConnection [reader GetOutputPort]
>             volumeMapper SetVolumeRayCastFunction compositeFunction
>
>         vtkVolume volume
>             volume SetMapper volumeMapper
>             volume SetProperty volumeProperty
>
>         # Add both the geometric and volumetric spheres to the renderer
>         ren1 AddViewProp volume
>         ren1 AddViewProp actor
>
>         # Create a red, green, and blue light
>         vtkLight redlight
>             redlight SetColor 1 0 0
>             redlight SetPosition 1000 25 25
>             redlight SetFocalPoint 25 25 25
>             redlight SetIntensity 0.5
>
>         vtkLight greenlight
>             greenlight SetColor 0 1 0
>             greenlight SetPosition 25 1000 25
>             greenlight SetFocalPoint 25 25 25
>             greenlight SetIntensity 0.5
>
>         vtkLight bluelight
>             bluelight SetColor 0 0 1
>             bluelight SetPosition 25 25 1000
>             bluelight SetFocalPoint 25 25 25
>             bluelight SetIntensity 0.5
>
>         # Add the light to the renderer
>         ren1 AddLight redlight
>         ren1 AddLight greenlight
>         ren1 AddLight bluelight
>         ren1 SetBackground 0.1 0.1 0.2
>
>         # Render it!
>         renWin Render
>
>         proc TkCheckAbort {} {
>           set foo [renWin GetEventPending]
>           if {$foo != 0} {renWin SetAbortRender 1}
>         }
>         renWin AddObserver AbortCheckEvent {TkCheckAbort}
>
>         iren AddObserver UserEvent {wm deiconify .vtkInteract}
>         iren Initialize
>
>         wm withdraw .
>
>         ######################################################################
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> This is the private VTK discussion list. 
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20060823/0a54a6c3/attachment.htm>


More information about the vtkusers mailing list