Render Triangle Files Using VTK

The tcl script renactors.tcl uses the Visualization Toolkit to render triangle files created from cross-section data using the Marching Cubes algorithm. Make Your Own Visible Woman describes how to use this script. The script is broken into several sections:

Get the Interactor User Interface

source vtkInt.tcl

Get Some Useful Colors

source colors.tcl

Define a Proc to Create an Actor Pipeline

proc mkname {a b} {return $a$b}

# proc to make actors
# create pipeline
proc MakeActor { name r g b} {
#
    set filename  [eval mkname $name .vtk]
    set reader  [eval mkname $name PolyReader]
    vtkPolyReader $reader
       $reader SetFilename $filename
    set mapper [eval mkname $name PolyMapper]
    vtkPolyMapper $mapper
        $mapper SetInput [$reader GetOutput];
        $mapper ScalarsVisibleOff;
    set actor [ eval mkname $name Actor]
    vtkActor $actor
        $actor SetMapper $mapper
        eval [$actor GetProperty] SetDiffuseColor $r $g $b
        eval [$actor GetProperty] SetSpecularPower 50
        eval [$actor GetProperty] SetSpecular .5
        eval [$actor GetProperty] SetDiffuse .8
    return $actor
}

Normal Rendering Setup

# First create the render master
vtkRenderMaster rm;

# Now create the RenderWindow, Renderer and both Actors
#
set renWin [rm MakeRenderWindow];
set ren1   [$renWin MakeRenderer];
set iren [$renWin MakeRenderWindowInteractor];

Make The Actors

# Add the actors to the renderer.

$ren1 AddActors [eval MakeActor bone $ivory]
$ren1 AddActors [eval MakeActor skin $flesh]

Render the Actors

$ren1 SetBackground 0.2 0.3 0.4;
$renWin SetSize 450 450;
[$ren1 GetActiveCamera] SetViewUp 0 -1 0;
[$ren1 GetActiveCamera] Azimuth 180;
$iren Initialize;

# render the image
#
$iren SetUserMethod {wm deiconify .vtkInteract};

# prevent the tk window from showing up then start the event loop
wm withdraw .

---------------

Questions / Comments

Bill Lorensen (lorensen@crd.ge.com)

Last Updated: Thursday, 30-Aug-01 17:41:07

menu bar

GE Home Page | GE Research and Development


Return to Lorensen's Home Page