VTK The Visualization Toolkit Part I Overview and

  • Slides: 20
Download presentation
VTK: The Visualization Toolkit Part I: Overview and object models March 28, 2001

VTK: The Visualization Toolkit Part I: Overview and object models March 28, 2001

What is VTK?

What is VTK?

Volume Rendering Software Data Hardware

Volume Rendering Software Data Hardware

Isosurface Extraction

Isosurface Extraction

Vector Field Visualization

Vector Field Visualization

What is VTK? n n n An open source, freely available software system for

What is VTK? n n n An open source, freely available software system for 3 D graphics, image processing, and visualization. Support for hundreds of algorithms in visualization and image processing Object-oriented design with different interpreted language wrapers.

At a Glance n n n The core of VTK is written entirely in

At a Glance n n n The core of VTK is written entirely in C++ Contains 600 existing classes with 325 K lines of code VTK will compile and run on Windows 98/NT, SGI, Linux, Sun, HP, etc. Support Open. GL and Mesa Different interfaces for fast prototyping: Tcl/Tk, Java, and Python Have users all over the world – The beauty of Open Source!

System Architecture Interpreted Wrapper (Tcl, Java, Python) [ Why? ] • Tcl/Tk shell •

System Architecture Interpreted Wrapper (Tcl, Java, Python) [ Why? ] • Tcl/Tk shell • Java interpreter • Python interpreter • Tcl/Tk source • Java JDK • Python source C++ core Libraries and includes All class source code (could take hours to (dll and. h files) compile) Or (. a and. h files) Binary Installation: if you will use The classes to build your applicatoin Source code Installation: If you want to extend vtk

Installation (1) Windows 9 x/NT/2000 n Binary: vtk 32 Core, vtk 32 Cpp, vtk

Installation (1) Windows 9 x/NT/2000 n Binary: vtk 32 Core, vtk 32 Cpp, vtk 32 Tcl, vtk 32 Java, vtk 32 Python (dll and includes) They will install Tcl/Tk for you (for example) if your PCdoes not have one already. With this installed, you can run their sample programs and write your own C++ application. n Source: You will need VC++ 6. 0 installed too.

Installation (2) Unix (alpha, beta, etc) : I have installed a copy on n

Installation (2) Unix (alpha, beta, etc) : I have installed a copy on n /usr/class/cis 788. 14 Q/vtk 3. 2 = path Library: $path/common/lib. VTKCommon. a n $path/graphics/lib. VTKGraphics. a $path/imaging/lib. VTKImaging. a also there are directories ‘patented’ and ‘contrib’ that you might use. Includes: -I$path/common –I$path/graphics –I$path/imaging Check the makefile in $path/graphics/example. Cxx/Makefile

Installation (2. 1) • CIS unix servers will be slow as we do not

Installation (2. 1) • CIS unix servers will be slow as we do not have native Open. GL support. Instead, we use Mesa 3 d. But you can do your labs in any of the CIS labs • Only C++ is supported (not Tcl/Tk at least) • When use the server to run vtk examples, you need to do setenv LD_LIBRARY_PATH /n/gold/1/graphics/Mesa 3. 0/lib • We probably can install a copy on albatross (graphics lab server)

VTK classes

VTK classes

VTK Object models n Graphics and Visualization Model n n Graphics objects: rendering Visualization

VTK Object models n Graphics and Visualization Model n n Graphics objects: rendering Visualization objects: generating geometry Data Flow System: Pipeline execution Data source Visualizatoin Graphics

Pipeline Execution Direction of ‘update’ Visualization model Source Filter Direction of data flow Render

Pipeline Execution Direction of ‘update’ Visualization model Source Filter Direction of data flow Render Graphics model Mapper Actor

The Graphics Model The purpose is to render the geometry (volume) on the screen

The Graphics Model The purpose is to render the geometry (volume) on the screen camera Actor screen Light

The Graphics Model The purpose is to render the geometry (volume) on the screen

The Graphics Model The purpose is to render the geometry (volume) on the screen vtk. Camera vtk. Render. Window. Interactor vtk. Actor vtk. Light • vtk. Property • vtk. Mapper • vtk. Transform vtk. Renderer

To see is to believe … 1 vtk. Render. Window 2 vtk. Renderer vtk.

To see is to believe … 1 vtk. Render. Window 2 vtk. Renderer vtk. Camera vtk. Light vtk. Actor ( property, geometry(mapper), transformation, etc)

Example Program Main() { create a window; create a renderer; give the renderer to

Example Program Main() { create a window; create a renderer; give the renderer to the window; create procedural geometry; create a mapper; give the geometry to the mapper; create an actor; give the mapper to the actor; } give the actor to the renderer; window->render(); Window Renderer Actor Mapper Geometry

User interaction n n vtk. Render. Window. Interactor – allow the user to interact

User interaction n n vtk. Render. Window. Interactor – allow the user to interact with the graphics objects Try the following keypresses: w: wireframe mode s: surface mode r: reset the transformation 3: toggle stereo button 3: zoom; botton 2: pan; button 1: rotate; c/o: camera mode or object mode j/t: joy stick or tracer ball mode e: exit

Go home to do the following… n n Install VTK (in your PC) n

Go home to do the following… n n Install VTK (in your PC) n Run Tcl or C++ examples n Build C++ examples OR Use the VTK installation on beta: n /usr/class/cis 788. 14 Q/vtk 3. 2/ n Copy a couple of examples in graphics/examples. Cxx to your local directory n Modify the makefile there and compile from your local directory n Give it a try!