[vtkusers] seeking for help on volume rendering
Samuel Barnes
ironictoo at yahoo.com
Wed Aug 23 15:49:24 EDT 2006
It looks to me like you are setting all values from 0 to 255 to be opaque. This means that you will see a solid cube that is however big your dataset is. You need to make at least the 0's surrounding your spheres transparent so you can see the spheres inside. I believe that would be something like:
AddSegment 0 0.0 255 1.0
If you used this for your color it would also give you something besides solid black.
Jian Wu <eewujian at gmail.com> wrote: 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/24c20c87/attachment.htm>
More information about the vtkusers
mailing list