vtk: the visualization toolkit

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

Upload: scot

Post on 06-Jan-2016

109 views

Category:

Documents


0 download

DESCRIPTION

VTK: The Visualization Toolkit. Part I: Overview and object models March 28, 2001. What is VTK?. Software Hardware. Data. Volume Rendering. Isosurface Extraction. Vector Field Visualization. What is VTK?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: VTK: The Visualization Toolkit

VTK: The Visualization Toolkit

Part I: Overview and object models

March 28, 2001

Page 2: VTK: The Visualization Toolkit

What is VTK?

Page 3: VTK: The Visualization Toolkit

Volume Rendering

Software

HardwareData

Page 4: VTK: The Visualization Toolkit

Isosurface Extraction

Page 5: VTK: The Visualization Toolkit

Vector Field Visualization

Page 6: VTK: The Visualization Toolkit

What is VTK?

An open source, freely available software system for 3D graphics, image processing, and visualization.

Support for hundreds of algorithms in visualization and image processing

Object-oriented design with different interpreted language wrapers.

Page 7: VTK: The Visualization Toolkit

At a Glance

The core of VTK is written entirely in C++ Contains 600 existing classes with 325K lines

of code VTK will compile and run on Windows 98/NT,

SGI, Linux, Sun, HP, etc. Support OpenGL and Mesa Different interfaces for fast prototyping: Tcl/Tk,

Java, and Python Have users all over the world – The beauty of

Open Source!

Page 8: VTK: The Visualization Toolkit

System ArchitectureInterpreted Wrapper (Tcl, Java, Python) [ Why?]

C++ core

Binary Installation: if you will useThe classes to build your applicatoin

Source code Installation: If you want to extend vtk

•Tcl/Tk source•Java JDK•Python source

All class source code(could take hours to compile)

Libraries and includes(dll and .h files)Or(.a and .h files)

•Tcl/Tk shell•Java interpreter•Python interpreter

Page 9: VTK: The Visualization Toolkit

Installation (1)

Windows 9x/NT/2000 Binary: vtk32Core, vtk32Cpp, vtk32Tcl, vtk32Java, vtk32Python (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.

Source: You will need VC++ 6.0 installed too.

Page 10: VTK: The Visualization Toolkit

Installation (2)

Unix (alpha,beta, etc) :I have installed a copy on /usr/class/cis788.14Q/vtk3.2 = path

Library: $path/common/libVTKCommon.a

$path/graphics/libVTKGraphics.a $path/imaging/libVTKImaging.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/exampleCxx/Makefile

Page 11: VTK: The Visualization Toolkit

Installation (2.1)

• CIS unix servers will be slow as we do not have native OpenGL support. Instead, we use Mesa3d. 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/Mesa3.0/lib

• We probably can install a copy on albatross (graphics lab server)

Page 12: VTK: The Visualization Toolkit

VTK classes

Page 13: VTK: The Visualization Toolkit

VTK Object models

Graphics and Visualization Model Graphics objects: rendering Visualization objects: generating

geometry

Data source Visualizatoin Graphics

Data Flow System: Pipeline execution

Page 14: VTK: The Visualization Toolkit

Pipeline Execution

Source Filter Mapper Actor

Direction of data flow

Direction of ‘update’Render

Visualization model Graphics model

Page 15: VTK: The Visualization Toolkit

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

cameraLightActor

screen

Page 16: VTK: The Visualization Toolkit

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

vtkCameravtkLight

vtkActor

•vtkProperty•vtkMapper•vtkTransformvtkRenderWindow

vtkRenderervtkRenderWindowInteractor

Page 17: VTK: The Visualization Toolkit

To see is to believe …1 vtkRenderWindow

2 vtkRenderervtkCamera

vtkLight

vtkActor( property, geometry(mapper), transformation, etc)

Page 18: VTK: The Visualization Toolkit

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

Page 19: VTK: The Visualization Toolkit

User interaction vtkRenderWindowInteractor – 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; button1: rotate; c/o: camera mode or object mode j/t: joy stick or tracer ball mode e: exit

Page 20: VTK: The Visualization Toolkit

Go home to do the following…

Install VTK (in your PC) Run Tcl or C++ examples Build C++ examples OR

Use the VTK installation on beta: /usr/class/cis788.14Q/vtk3.2/ Copy a couple of examples in

graphics/examplesCxx to your local directory

Modify the makefile there and compile from your local directory

Give it a try!