112
Visualização Científica – Introdução ao VTK João Manuel R. S. Tavares Jorge Gomes Barbosa url: http://www.fe.up.pt/~tavares/ensino/VISCI/visci.html

Introdução ao VTKtavares/ensino/VISCI/Downloads... · sistemas windows incluindo: Qt, FLTK, wxWindows, Tcl/Tk, Python/Tk, Java, X11, Motif, Windows, Cocoa e CARBON

Embed Size (px)

Citation preview

Visualização Científica –Introdução ao VTK

João Manuel R. S. TavaresJorge Gomes Barbosa

url: http://www.fe.up.pt/~tavares/ensino/VISCI/visci.html

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 2

Sumário

1. Bibliografia2. O que é o VTK3. Recursos sobre o VTK4. Obter o VTK5. Características técnicas do VTK6. Exemplos de aplicação do VTK7. Arquitectura do sistema VTK8. Modelo de visualização do VTK9. Modelo de imagem do VTK10. Pipeline de execução do VTK

11. Modelo gráfico do VTK12. Pipeline de visualização do

VTK13. Dados suportados no VTK:

Células14. Dados suportados no VTK:

Conjuntos de dados15. Dados suportados no VTK:

Tipos de atributos associados aos pontos e às células

16. Formato de ficheiros do VTK

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 3

Bibliografia

The Visualization Toolkit (3rd Edition)Will Schroeder, Ken Martin, Bill LorensenISBN 1-930934-07-6Kitware, Inc. publishersVTK User’s Guide (VTK 4.2)Will Schroeder, Ken MartinISBN 1-930934-08-4Kitware, Inc publishersMastering CMake (CMake 1.8)Ken Martin, Bill HoffmanISBN 1-930934-09-2Kitware, Inc publishers

Disponíveis para compra on-line em: http://www.vtk.org/buy-books.php

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 4

O que é o VTK?

O VTK – The Visualization ToolKit é um sistema de software aberto para computação gráfica 3D, processamento de imagem e visualização.O VTK inclui uma biblioteca de classes C++ e várias interfaces de interpretação, incluindo para as linguagens Tcl/Tk, Java, e Python.O VTK tem vindo a ser implementado em plataformas Unix, MS Windows (95/98/NT/2000/XP) e Mac (OSX Jaguar).A arquitectura e o desenvolvimento dabiblioteca têm sido fortemente influenciadospelos princípios do desenvolvimento /programação orientado para objectos.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 5

O que é o VTK?

O modelo gráfico do VTK está num nível de abstracção mais elevado quando comparado com os modelos das bibliotecas de renderização como a OpenGL ou a PEX. Tal significa que é muito mais fácil desenvolver aplicações gráficas e de visualização.Com o VTK as aplicações podem ser implementadas indiferentemente emC++, Tcl, Java, ou Python.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 6

O que é o VTK?

Biblioteca de classes C++

(compilada)

Interface para as linguagens interpretadas: Tcl/Tk, Java,

Python

Nível de aplicação (C++,Tcl/Tk, ...)

VTK

Biblioteca Gráfica (openGL)

Sistema Orientado para Objectos

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 7

O que é o VTK?

A biblioteca VTK é um verdadeiro sistema de visualização, pois não permite apenas a representação da geometria dos objectos.O VTK suporta uma ampla variedade de algoritmos de visualização, incluindo: métodos escalares, vectoriais, tensoriais, de textura e volumétricos; e técnicas de modelamento avançado como o modelamento implícito, a redução poligonal, a suavização de malhas, o corte, a definição de contornos e a triangulação de Delaunay. Estão também integrados dezenas de algoritmos de processamento de imagem, de tal forma que é possível “combinar” algoritmos de imagem e algoritmos gráficos.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 8

O que é o VTK?

A biblioteca VTK é utilizada por estudantes, académicos, programadores, analistas de dados, utilizadores e investigadores de computação gráfica e visualização, engenheiros, cientistas, investigadores, etc.Apesar do VTK ser disponibilizado livremente, o suporte comercial é assegurado pela empresa Kitware.Dezenas de empresas utilizam o VTK no desenvolvimento dos seus programas comerciais.O VTK também é muito utilizado em ambiente académico, em investigação e em cursos de computação gráfica e de visualização.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 9

Recursos sobre o VTK

LivrosThe Visualization Toolkit, An Object-OrientedApproach to 3D Graphics (Third Edition)Will Schroeder, Ken Martin and Bill LorensenKitware, Inc., ISBN 1-930934-07-6 http://www.kitware.com/products/vtktextbook.html

The VTK User's Guide (VTK 4.2 Edition)Kitware, Inc.ISBN 1-930934-08-4 http://www.kitware.com/products/vtkguide.html

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 10

Recursos sobre o VTK

Página web oficialhttp://www.vtk.org

Software (http://public.kitware.com/VTK/files/);FAQ’s (http://public.kitware.com/cgi-bin/vtkfaq);Lista de discussão (http://public.kitware.com/mailman/listinfo/vtkusers);Motor de procura (http://www.kitware.com/search.html);Documentação on-line (http://www.vtk.org/doc/nightly/html/);Exemplos de programas(http://www.vtk.org/example-code.php);Exemplos de utilização(http://www.kitware.com/case/vtkinuse.html);Ficheiros de dados (http://public.kitware.com/VTK/files/);Links (http://www.vtk.org/links.php);etc.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 11

Recursos sobre o VTK

Exemplos distribuídos em conjunto com o código fonte (...VTK\Examples).Vários testes distribuídos em conjunto com o código fonte (por exemplo, ...VTK\Graphics\Testing\Tcl, ...VTK\Graphics\Testing\Cxx).Sistemas de ajuda distribuídos em conjunto com o código fonte: em html (...vtkhtml\html\index.html) e em documentação compilada (MS Windows) (...vtkhtml\VTK4.2Documentation.chm).Páginas de utilizadores com vários recursos disponíveis, por exemplo, http://www.barre.nom.fr/vtk).

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 12

Recursos sobre o VTK

Sistema de ajuda, distribuído em conjunto com o código fonte, em html.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 13

Recursos sobre o VTK

Sistema de ajuda, distribuído em conjunto com o código fonte, compilado (MS Windows).

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 14

Obter o VTK

A partir dos CD’s que acompanham os livros da Kitware sobre o VTK;Fazendo o download:

http://public.kitware.com/VTK/get-software.phpftp://public.kitware.com/pub/vtkhttp://public.kitware.com/VTK/files/

Existem diferentes versões disponíveis:VTK 4.X (versão oficial);VTK Nightly Release (versão diária – não oficial)VTK CVS (últimas modificações – não oficial)

Verificar a estado da versão CVS (estável ou não)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 15

Obter o VTK

Ficheiros a obter (sistemas Windows):Instalação dos executáveis (Binary)

Descarregar as versões executáveis: Núcleo: vtkXXCore.exe (ou vtkXX-LatestRelease.exe)Suporte para linguagens interpretadas: vtkXXTcl.exe, vtkXXJava.exe, vtkXXPython.exe

Executar vtkXXXCore.exe, vtkXXTcl.exe, ...Instalação do código fonte

Descarregar as fontes do VTK: vtkXXSrc.zip (ou VTK-XX-LatestRelease.zip)Descarregar o CMake: CMSetupXXX.exeExecutar o CMake e configurar o projecto VTKExtrair, e compilar o projecto (compilador necessário, por exemplo o Microsoft VC++ 6.0)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 16

Características técnicas do VTK

Software:Mais de 700 classes C++ .Mais de 350,000 linhas de código C++ (110,000 linhas executáveis).Arquitectura orientada para objectos (baseada na proposta no livro Object-Oriented Modelling andDesign de Rumbaugh et al da Prentice-Hall).Mais de 215,000 linhas geradas automaticamente para a interface Tcl (e também para Python e Java)....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 17

Características técnicas do VTK

Software:...Documentação in-line (no código e em páginas do manual em html ou compiladas - MS Windows).Código C++ fácil de entender.Desenhado para ser expandido.Inclusão de vários exemplos: aplicações, casos de teste e vários conjuntos de dados.Suporta multithreading e memória distribuída para algoritmos paralelos.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 18

Características técnicas do VTK

Interacção e GUIIntegração pacifica com uma vasta variedade de sistemas windows incluindo: Qt, FLTK, wxWindows, Tcl/Tk, Python/Tk, Java, X11, Motif, Windows, Cocoa e CARBON.Suporta uma grande variedade de estilos de interacção, incluindo os modos trackball e joystickpara as câmaras e para os actores. Os estilos de interacção podem ser configurados e novos estilos podem ser facilmente adicionados....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 19

Características técnicas do VTK

Interacção e GUI...Implementa um mecanismo de gestão de eventos de comando/observação. Os objectos podem interrogar outros objectos por um evento particular e evocar rechamadas quando apropriadas. Os eventos podem ter prioridades associadas e ser abortados. As classes do VTK definem uma vasta gama de eventos evocados através do sistema.Inclui um conjunto extenso de objectos 3D predefinidos, incluindo: ponto, linha, plano, planoimplícito, caixa, esfera, cone, barra escalar, plano de imagem, e spline.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 20

Características técnicas do VTK

Computação Gráfica 3DRenderização de superfícies.Renderização de volumes (suporta textura e combinação de superfícies opacas com volumes).Primitivas de renderização: pontos, linhas, polígonos, faixas de triângulos, volumes.Renderização interactiva....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 21

Características técnicas do VTK

Computação Gráfica 3D...Propriedades: cor ambiente, cor difusa, cor especular, cor das luzes e dos objectos, transparência, mapeamento de textura, sombreado - flat/Gouraud, luz anterior.Luzes: infinitas, pontuais.Câmaras: projecção paralela e perspectiva, controlo do azimute, do zoom e da elevação, reset.Criação automática de câmaras e de luzes....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 22

Características técnicas do VTK

Computação Gráfica 3D...A programação é independente do tipo do renderizador (definido automaticamente em função da plataforma computacional).Modelo Gráfico: luzes iluminam a cena, câmaras definem o ponto de vista e o nível de zoom, actores definem a geometria e as propriedades –“semelhante a Hollywood”. ...

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 23

Características técnicas do VTK

Computação Gráfica 3D...Modelo Gráfico: ... possibilidade de geração automática ou manual do nível de detalhe dos actores, de forma a suportar renderização interactiva mesmo com grandes modelos; possibilidade de criação de grupos de actores; os mapeadores (Mappers), fazem a ligação da geometria com o pipeline de visualização; os renderizadores, coordenam as luzes, as câmaras e os actores de forma a criar imagens; volumes, são um tipo particular de actores, com propriedades especiais. Outras características: janelas e pontos de vista múltiplos; gravação de imagens em vários formatos (incluindo png, jpeg, tiff, bmp e ppm).

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 24

Características técnicas do VTK

VisualizaçãoTipos de dados: poligonais (pontos, linhas, polígonos, faixas de triângulos), imagens e volumes (conjuntos de pontos estruturados), grelhas estruturadas, grelhas não estruturadas, pontos não estruturados, grelhas rectangulares.Tipos de células (2D/3D): vértice, polivértice, triângulo, faixa de triângulos, pixel, quadrilátero, polígono, tetraedro, voxel, hexaedro, cunha, pirâmide....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 25

Características técnicas do VTK

Visualização...Tipos de atributos: escalares, vectores, tensores (3x3), normais, coordenadas de textura.Algoritmos escalares: mapeamento colorido, isocontorno, binarização, geração de escalares a partir de outros dados....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 26

Características técnicas do VTK

Visualização...Alguns algoritmos vectoriais incluídos: hedgehogs, streamlines, dashed streamlines, stream points, stream surfaces, streampolygon, displacementplots/warping.Alguns algoritmos tensoriais incluídos: tensor ellipsoids, tensor glyphs, hyper-streamlines....

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 27

Características técnicas do VTK

Visualização...Visualização de informação (coordenadas paralelas, redução dimensional, etiquetas programáveis).Algoritmos de modelamento incluídos: esferas, cones, cilindros, cubos, linhas, planos, ..., eixos, cursores, texto, modelamento implícito, decimização, binarização, operações booleanas, etiquetas, corte, geração das normais, conectividade, geração de faixas de triângulos, extrusão linear e de rotação, varrimento de superfícies e de volumes, ...

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 28

Características técnicas do VTK

Visualização... visualização de pontos não estruturados, acrescentar, fundir e filtrar dados, triangulação 2D/3D de Delaunay, suavização de malhas, reconstrução de superfícies.Importação e exportação de dados em vários formatos: stereo-lithography, MOVIE.BYU, Cyberware, Inventor, 3D Studio, PLOT3D, PNM, RIB, SLC, TIFF , VRML, Wavefront.Visualização de anotações: texto 2D/3D, barras escalares, gráficos x-y.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 29

Características técnicas do VTK

Imagem Pode ser utilizado com grandes volumes de dados.A maior parte dos filtros são de implementação paralela (transparente ao utilizador).Integração total com o pipeline gráfico.Tipos de filtros de imagem incluídos: difusão, Butterworth, dilatação, erosão, esquelitização, convolução, diferença, aritmético, magnitude, divergência, gradiente, média, distância, FFT, Fourier, Gaussian, Sobel, histograma, binarização, permutação, conversão.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 30

Características técnicas do VTK

VantagensGratuito;Facilmente criam-se aplicações gráficas, de processamento de imagem ou de visualização;Código fonte C++ disponibilizado;Facilmente derivam-se novas classes;Possibilidade de prototipagem ou desenvolvimento de aplicações utilizando linguagens interpretativas (Tcl, Python, e Java);...

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 31

Características técnicas do VTK

Vantagens...Interfaces podem ser criadas rapidamente com bibliotecas adequadas para o desenvolvimento de interfaces, por exemplo, Tk ou Java;Biblioteca de renderização independente da plataforma (MS Windows, Unix, Mac);Vários algoritmos úteis e avançados incluídos;Sistema integrado de software;Permite a conversão de dados em imagens;...

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 32

Características técnicas do VTK

Vantagens...Filosofia orientada para objectos;Fortemente testado em aplicações reais;Elevado suporte disponível;Suporte comercial existente.

DesvantagensUm motor gráfico não “super rápido”;Código C++;Pesado, é preciso um sistema “decente” para o utilizar com eficácia.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 33

Exemplos de aplicação do VTK

Área FinanceiraSimulação

Área MédicaCT / MRI / Ultrasound

Modelamento

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 34

Exemplos de aplicação do VTK

G.I.SC.F.DVisualização Médica

Visualização Tensorial Renderização de volumesVisualização de fluxo

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 35

Exemplos de aplicação do VTKImagem Médica

Modelamento

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 36

Exemplos de aplicação do VTK

Mapeamento Geofísico

Visualização do fluxo de componentes

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 37

Exemplos de aplicação do VTK

Renderização de volumes

Software

HardwareDados

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 38

Exemplos de aplicação do VTK

Extracção de Iso-superfícies

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 39

Exemplos de aplicação do VTK

Visualização de campos vectoriais

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 40

Exemplos de aplicação do VTK (algoritmos)

Sample F(x,y,z) Point Array

Extract Plane

Line ContourRenderer

Surfacecountour

Superfícies de contorno Planos extraídos Linhas de contorno

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 41

Exemplos de aplicação do VTK (algoritmos)

CT Scan de uma cabeça humana

Filtros/classes vtk: vtkContourFilter e vtkCutter

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 42

Exemplos de aplicação do VTK (algoritmos)

Energia e densidade de fluxo numa câmara de combustão

Filtros/classes vtk:vtkProbeFilter e vtkContourFilter

Filtros/classes vtk:vtkCutter e vtkWarpVectors

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 43

Exemplos de aplicação do VTK (algoritmos)

Fluxo do sangue numa artéria

Filtros/classes vtk: vtkContourFilter,vtkStreamLines e vtkTubeFilter

Filtros/classe vtk: vtkHedgeHog

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 44

Exemplos de aplicação do VTK (algoritmos)

Modelo CAD de um motor

Filtros/classes vtk:vtkPolyDataMapper

e vtkTextureThreshold

Escoamento em torno de um elemento

Filtros/classes vtk: vtkStreamLines,vtkTubeFilter, vtkDataSetMapper

e vtkCutter

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 45

Arquitectura do sistema VTK

O VTK é composto por um núcleo (core) compilado (escrito em linguagem C++) com as devidas interfaces para várias linguagens interpretadas.

C++

core

Interpreter

Interpreted Wrapper (Tcl, Java, Python)

Núcleo C++

Instalação Binária: para utilizaras classes no desenvolvimentode uma aplicação

Instalação do código fonte: para estender o VTK

•Fonte Tcl/Tk•Java JDK•Fonte Python

Código fonte de todasas classes (pode levarhoras a compilar)

Bibliotecas e includes(ficheiros dll, bin e .h)ou(ficheiros .a e .h)

•Tcl/Tk shell•Interpretador Java•Interpretador Python

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 46

Modelos do VTK

Modelo Gráfico - criação da cena;Modelo de Visualização - transformação da informação em dados gráficos.

Objectos Gráficos: Renderização (rendering);Objectos de Visualização: Geração da Geometria.

Sistema do fluxo de dados: pipeline de execução

Dados (fonte) Visualização Gráficos

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 47

Modelos do VTK

Modelo de Visualização

Modelo GráficoDados

ProcessamentoSource(Reader)

Source(Procedural)

Filter

Mapper(Writer)

MapperLeitura

Criação denovos dados

Escrita

Transformação dos dados em

primitivas gráficas

Representação

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 48

Modelos do VTK

Exemplo:

f(x,y,z)

Representaçãocomputacional

Transformação(visualização)

amostragem

Representaçãográfica

(renderização)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 49

Modelo de visualização do VTK

Objectivos:Transformar os dados em primitivas gráficas;Construir a representação geométrica dos objectos a representar.

Baseado numa filosofia de pipelineA transformação dos dados é decomposta em módulos;Cada módulo realiza uma operação precisa sobre os dados (transformação);Os módulos são ligados entre si de forma a formarem uma saída do pipeline;Os dados fluem no interior do pipeline, passando de um módulo para outro.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 50

Modelo de visualização do VTK

Dois tipos de objectos:Objectos data (dados)

Dados que fluem no interior do pipeline;Designados por datasets (conjuntos de dados).

Objectos process (processos)Módulos ou composições algorítmicas do pipeline.

Process A

dataset A dataset B

Process B Process C

saída

entrada

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 51

Modelo de visualização do VTK

Objecto Process

Source

Início do pipeline•Leitura de dados externos;•Geração de novos dados.

Filter

Processamento dos objectos dados•Recebe uma ou mais entradas;•Gera uma ou mais saídas.

Mapper

Fim do pipeline•Gerar primitivas gráficas;•Comunicação com o modulo gráfico.

Source

nenhuma entrada

≥ 1 saída

Mapper

≥ 1 entrada

nenhuma saída

Objectos process

Filter

≥ 1 entrada

≥ 1 saída

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 52

Modelo de visualização do VTK

Fonte

Objectodata

Filtro

Objectodata

Fonte

Objectodata

Filtro

Objectodata

Filtro

Objectodata

Mapeador Modelo gráfico

Exemplo

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 53

Modelo de visualização do VTKExemplo (Tcl)

vtkSphereSource spheresphere SetRadius 5sphere SetThetaResolution 36sphere SetPhiResolution 18

vtkPolyDataMapper isoMapperisoMapper SetInput [sphere GetOutput]isoMapper ScalarVisibilityOn

vtkActor isoActorisoActor SetMapper isoMappereval [isoActor GetProperty] SetColor 0.2 0.63 0.79

vtkRenderer ren1ren1 AddActor isoActorren1 SetBackground 1 1 1

vtkRenderWindow renWinrenWin AddRenderer ren1renWin SetSize 500 500

vtkRenderWindowInteractor ireniren SetRenderWindow renWiniren Initialize

Source - Fonte

Mapper - Mapeador

Actor

Renderer

Render Window

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 54

Modelo de visualização do VTK

Um dataset (conjunto de dados) é constituído por:Estrutura topológica (lista de células)

Determina a forma do objecto (triangular, esférica, de malha, etc.);Invariável a certas transformações geométricas (translação, rotação e escalamento);Um objecto é composto por uma ou mais células.

Estrutura geométrica (lista de pontos)Instância da estrutura topológica;Coordenadas dos pontos que constituem as células (vértices).

AtributosInformação complementar associada aos pontos e às células (ex. temperatura num ponto, massa de uma células, etc.)

objecto dataou dataset

Objectos data ou dataset

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 55

Modelo de imagem do VTK

Pipeline de imagem – um caso especial do pipeline de visualização;Desenhado apenas para suportar dados do tipo vtkStructuredPoints (pontos estruturados);Um conjunto de pontos estruturados são dados distribuídos regularmente num array alinhado com o sistema de eixos;Conjunto de pontos 2D – imagens, mapas de pixéis (pixmaps) e mapas de bits (bitmaps);Conjunto de pontos 3D – volumes (uma pilha “stack” de imagens 2D - slices);Os filtros envolvidos têm sempre à entrada e à saída conjuntos de pontos estruturados;Devido à natureza regular dos dados:

Os dados podem ser “divididos em parcelas rectangulares”;O pipeline de imagem pode ser multithreaded.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 56

Pipeline de execução do VTK

Direcção do método Update()

Source Filter Mapper Actor

RenderModelo de Visualização Modelo Gráfico

Direcção do fluxo de dados(geração dos dados através do método ExecuteData())

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 57

Modelo gráfico do VTK

ObjectivoTransformar dados gráficos em imagens e representar no ecrã.

Reagrupa as características de um sistema gráfico 3D.Principais classes do modelo gráfico do VTK:

Render WindowRenderer

LightCameraActor

PropertyTransformMapper

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 58

Modelo gráfico do VTK

O objectivo é renderizar a geometria (volume) no ecrã.

CâmaraLuzActor

Ecrã

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 59

Modelo gráfico do VTK

vtkRenderWindow

vtkCameravtkLightvtkActor

•vtkProperty•vtkMapper•vtkTransform

vtkRenderervtkRenderWindowInteractor

O objectivo é renderizar a geometria (volume) no ecrã.Classes VTK

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 60

Modelo gráfico do VTK

1 vtkRenderWindow

vtkCamera2 vtkRenderer vtkLight

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

Exemplo

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 61

Modelo gráfico do VTK

Render Window

Renderer :

Actor : PropertyTransformMapper

CameraLight

Exemplo

Viewport

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 62

Gere a(s) janela(s) na qual serãorepresentados as imagens ou osobjectos gráficos;Assegura as funcionalidades pordefeito de uma janela windows; Independente dos dispositivos gráficos (hardware);Gere o agrupamento dos renders contidos na janela:

Vários renders podem ser agrupados numa mesma janela (render window) de forma a criar uma cena (imagem final).

Renderer

Modelo gráfico do VTK

Render Windows

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 63

Modelo gráfico do VTK

Classe vtkRenderWindowMétodos:

Adicionar / remover um renderer:AddRenderer (vtkRenderer)RemoveRenderer (vtkRenderer)

Configuração do ecrã:FullScreenOn () / FullScreenOff ()BordersOn () / BordersOff ()

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 64

Modelo gráfico do VTK

RendererCoordena a(s) fonte(s) de luz, a câmara e os actores de forma a gerar a imagem de uma cena.Um cena é composta:

Pelo menos por um actor, uma câmara e uma fonte de luz;Se os objectos câmara e luz não são definidos, então são criados automaticamente pelo renderer.

Actor: o objecto visível

Câmara: determina a projecção da geometria 3D numa imagem 2D

Luz: representa e manipula a iluminação da cena (em 3D)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 65

MétodosAdicionar / remover actores e luzes:

AddActor (vtkActor) / RemoveActor (vtkActor)AddLight (vtkLight) / RemoveLight (vtkLight)

Determinar a câmara a utilizar na renderização:SetActiveCamera (vtkCamera)

Criar as imagens resultantes da renderização:Render

Conversão de coordenadas:ViewToWorld (float, float, float) / WorldToView (float, float, float)

x

y

zx

y

Mundo Vista

Modelo gráfico do VTK

Classe vtkRenderer

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 66

Modelo gráfico do VTK

Classe vtkLightMétodos

Definir / obter a cor da iluminação:SetColor (float , float , float) / GetColor ()

Definir / obter a posição da fonte de luz:SetPosition (float , float , float ) / GetPosition ()

Definir / obter a intensidade (de 0 a 1):SetIntensity (float ) / GetIntensity ()

Ligar / Desligar uma fonte de luz:SwitchOn () / SwitchOff ()

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 67

MétodosDefinir / obter a posição da câmara em coordenadas mundo:

SetPosition (float ,float ,float ) / GetPosition ()Definir / obter a posição do ponto focal da câmara:

SetFocalPoint (float ,float ,float ) / GetFocalPoint ()Calcular a distância entre a posição da câmara e o seu ponto focal:

ComputeDistance ()

Direcção de projecçãoPonto focal

Posição

Plano anterior de clipping

Plano posterior de clipping

Modelo gráfico do VTK

Classe vtkCamera

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 68

Modelo gráfico do VTK

O objecto representado por umrenderer numa cena.Um actor não representadirectamente a sua geometrianem a sua aparência.

Tais características são definidasutilizando os objectos:

PropertyMapperTransform

ActorActor

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 69

Modelo gráfico do VTK

Classe vtkActorMétodos

Associar / obter o objecto property que determina as propriedades de aparência do actor:

SetProperty (vtkProperty) / GetProperty ()Por defeito um objecto property é criado;Vários actores podem partilhar o mesmo objecto property.

Associar / obter o objecto mapper que determina a geometria do actor:

SetMapper (vtkMapper) / GetMapper ()Definir a matriz de transformação que determina a escala,a posição e a orientação do actor:

SetUserMatrix (vtkMatrix4x4 *)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 70

Modelo gráfico do VTK

Classe vtkActorGeralmente, as propriedades e as transformações não são definidas explicitamente. Os seus valores são determinados durante a criação do actor.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 71

Modelo gráfico do VTK

Determina a aparência da superfície do actor.Classe VTK : vtkProperty.Métodos

Tipo de representação da geometria da superfície:SetRepresentationToPoints ()SetRepresentationToWireframe ()SetRepresentationToSurface ()

Definição da cor da superfície:SetColor (float , float , float )

Definir a transparência da superfície (0 - transparente, 1.0 - opaca):

SetOpacity (float )

Property

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 72

Modelo gráfico do VTK

MapperLiga o modelo de visualização e o modelo gráfico.

Determina a geometria do actor.Combinação de pontos (nodos), linhas, polígonos, etc.

Definição da cor dos nodos (vértices).Faz referência a uma palete de cores.

Todos os actores devem ter um objecto mapperassociado de forma a serem representados no ecrã. Classes VTK : vtkMapper, vtkPolyDataMapper, vtkDataSetMapper.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 73

Modelo gráfico do VTK

Classe vtkPolyDataMapperMétodos

Especificar os dados de entrada para o mapper (nodos):SetInput (vtkPolyData)

Associar uma palete de cores:SetLookupTable (vtkLookupTable)

Criar uma palete de cores por defeito:CreateDefaultLookupTable ()

Determinar se a renderização é de maneira imediata ou não:

ImmediateModeRenderingOn ()ImmediateModeRenderingOff ()

(Usada para estruturas poligonais.)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 74

Modelo gráfico do VTK

Classe TransformGuarda uma pilha de matrizes de transformação;Apenas uma matriz de transformação activa (corrente);Disponibiliza métodos para efectuar as operações de translação, escalamento e rotação.

Translação Escalamento Rotação

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 75

Modelo gráfico do VTK

Classe Transform

Translação

Translação (tx,ty,tz)

xyzw

txtytz

xyz

''''

⎢⎢⎢⎢

⎥⎥⎥⎥

=

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

1 0 00 1 00 0 10 0 0 1 1

Escalamento

Escalamento (sx,sy,sz)

Ts

sxsy

sz=

⎢⎢⎢⎢

⎥⎥⎥⎥

0 0 00 0 00 0 00 0 0 1

Rotação

⎣ ⎦

TRx=−

⎡⎢⎢⎢⎢

⎤⎥⎥⎥⎥

1 0 0 00 00 00 0 0 1

cos sinsin cos

θ θθ θ

Rotação θ em torno de x

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 76

Modelo gráfico do VTK

Classe vtkTransformMétodos

Criar uma matriz identidade:Identity ()

Criar uma matriz rotação e combina-la com a matriz de transformação corrente:

RotateX (float), RotateY (float ), RotateZ (float )Escalar a matriz de transformação corrente:

Scale (float , float , float )Transladar a matriz de transformação corrente:

Translate (float , float , float )Transpor matriz de transformação corrente:

Transpose ()Inverter a matriz de transformação corrente:

Inverse ()

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 77

Pipeline de visualização do VTK

O VTK utiliza o modelo funcional de um pipeline de visualização para transformar dados em imagens ou em geometria (ecrã/ficheiros).

Source Objects Filter Objects Mapper Objects

O pipeline é composto por:•Source Objects: interface para dados externos, ou dados devidamente gerados (ex. vtkPLOT3DReader)•Filter Objects: operam nos dados dos Source objects e geram a geometria e/ou as imagens (ex. vtkContourFilter)•Mapper Objects: transformam e processam os dados resultantes de um Filter Object de forma a serem representados no ecrã ou escritos num ficheiro (ex. vtkPolyDataMapper)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 78

Pipeline de visualização do VTK

ConexõesOs elementos do pipeline de visualização são conectados em C++ com os comandos:

Filter->SetInput(Source->GetOutput());

Define a saída de uma fonte como entrada de um filtro.Em tcl:Filter SetInput [Source GetOutput]

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 79

Pipeline de visualização do VTK

PseudoPrograma Exemplo

Window

Renderer

Actor

Mapper

Geometry

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();

}

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 80

Pipeline de visualização do VTK

Exemplo de pipeline

Mace.tclvtkSphereSource

vtkPolyDataMapper

vtkConeSource

vtkGlyph3D

vtkPolyDataMapper(2 actores)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 81

Pipeline de visualização do VTK

Sources Filters Mappers

File Output

Props

vtkDataSet vtkDataSet

Uma source/filter pode ser ligada a mais do que um filter/mapper.

(continua...)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 82

Pipeline de visualização do VTK

Renderer RenderWindow

vtkCamera,vtkLight

(São criadospor defeito)

Props(ex. Actor/Volume)

Props

Props

vtkRenderWindowInteractor

vtkProperty

(...continuação)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 83

Pipeline de visualização do VTK

//Create the RenderWindow and RenderervtkRenderer *ren = vtkRenderer::New();

vtkRenderWindow *renWin = vtkRenderWindow::New();

renWin->AddRenderer(ren);

//Read in the DatavtkStructuredPointsReader *reader =

vtkStructuredPointsReader::New();

reader->SetFileName(“ironProt.vtk”);

#Create the RenderWindow, RenderervtkRenderer ren

vtkRenderWindow renWin

renWin AddRenderer ren

# Read in the DatavtkStructuredPointsReader reader

reader SetFileName “ironProt.vtk”

C++ Tcl

Exemplo: Criação de uma isosuperfície de uma proteína

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 84

Pipeline de visualização do VTK...Exemplo: Criação de uma isosuperfície de uma proteína

C++ Tcl

//Setup the pipelinevtkContourFilter *iso =

vtkContourFilter::New();

iso->SetInput(reader->GetOutput());iso->SetValue(0, 128.0f);

vtkPolyDataMapper *isoMapper = vtkPolyDataMapper::New();

isoMapper->SetInput(iso->GetOutput());isoMapper->ScalarVisibilityOff();

# Setup the pipelinevtkContourFilter iso

iso SetInput [reader GetOutput]iso SetValue 0 128

vtkPolyDataMapper isoMapper

isoMapper SetInput [iso GetOutput]isoMapper ScalarVisibilityOff

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 85

Pipeline de visualização do VTK

//Terminate the pipelinevtkActor *isoActor = vtkActor::New();

isoActor->SetMapper(isoMapper);

//Set the color of the ActorvtkProperty *prop =

isoActor->GetProperty();prop->SetColor(1, 0, 0);

//Add the Actor to the rendererren->AddActor(isoActor);

//Render the imagerenWin->Render();

# Terminate the pipelinevtkActor isoActor

isoActor SetMapper isoMapper

# Set the color of the ActorvtkProperty prop

set prop [isoActor GetProperty]prop SetColor 1 0 0

# Add the Actor the the rendererren AddActor isoActor

# Render the imagerenWin Render

C++ Tcl...Exemplo: Criação de uma isosuperfície de uma proteína

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 86

Pipeline de visualização do VTK... Exemplo: Criação de uma isosuperfície de uma proteína

Imagem resultante

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 87

Pipeline de visualização do VTK

Exemplo (C++)// creating a rendering environment…vtkRenderer * renderer = vtkRenderer::New();vtkRenderWindow * renderWindow = vtkRenderWindow::New();

renderWindow->AddRenderer(renderer);// creating an object ( source, mapper, actor )…vtkConeSource * cone = vtkConeSource::New();vtkPolyDataMapper * coneMapper = vtkPolyDataMapper::New();

coneMapper->SetInput(cone->GetOutput());vtkActor * coneActor = vtkActor::New();

coneActor->SetMapper(coneMapper);// assign the object to the rendering environment,// and render the scene…renderer->AddActor(coneActor);renderWindow->Render();

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 88

Pipeline de visualização do VTK

Exemplo (aplicação de um filtro - C++)// creating a sphere object…vtkSphereSource * sphere = vtkSphereSource::New();

// and a filter to apply to the sphere…vtkElevationFilter * elevationFilter = vtkElevationFilter::New();elevationFilter->SetInput((vtkDataSet *) sphere->GetOutput());elevationFilter->SetLowPoint(0,0,-1);elevationFilter->SetHighPoint(0,0,1);

// assign the filter to a mapper…vtkDataSetMapper * mapper = vtkDataSetMapper::New();mapper->SetInput(elevationFilter->GetOutput());

// create an actor…vtkActor * actor = vtkActor::New();Actor->SetMapper(mapper);

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 89

Pipeline de visualização do VTK

Interacção com o utilizadorA classe vtkRenderWindowInteractor permite que o utilizador interaja com os objectos gráficos; por exemplo:

Teclas pressionadas: w: modo wireframe;s: modo surface;r: reset da transformação;3: comutar para modo stereo; c/o: modo câmera ou modo objecto;j/t: modo joystick ou modo trackball; e: sair da aplicação.Botões do rato:botão 3 (dir.): zoom; botão 2: pan; botão 1 (esq.): rotate.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 90

Pipeline de visualização do VTK

Interacção com o utilizador exemplo (C++):

vtkRenderWindowInteractor * interactor = vtkRenderWindowInteractor::New();vtkRenderWindow * renderWindow = vtkRenderWindow::New();vtkRenderer * renderer = vtkRenderer::New();

// creating an actor, and add it to the renderer…renderer->AddActor(actor);renderWindow->Render();

interactor->SetRenderWindow(renderWindow);interactor->Start();

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 91

Pipeline de visualização do VTK

vtkSphereSource spheresphere SetRadius 5sphere SetThetaResolution 36sphere SetPhiResolution 18

vtkPolyDataMapper isoMapperisoMapper SetInput [sphere GetOutput]isoMapper ScalarVisibilityOn

vtkActor isoActorisoActor SetMapper isoMappereval [isoActor GetProperty] SetColor 0 0 0.8

vtkRenderer ren1ren1 AddActor isoActorren1 SetBackground 1 1 1

vtkRenderWindow renWinrenWin AddRenderer ren1renWin SetSize 500 500

vtkRenderWindowInteractor ireniren SetRenderWindow renWiniren Initialize

Source

Mapper

Actor

Renderer

Render Window

Exem

plo

(Tcl

):

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 92

Dados suportados no VTK: Células

Átomos que constituem um conjunto de dados;Uma célula é uma organização topológica de pontos (coordenadas x, y, z); Definidas por:

Tipo;Lista ordenadade pontos.

Malha = lista de triângulos

Triângulo = lista de pontos

ObjectoCélula

0

1

3

2

TetraedroHexaedro

0 1

34

5

67

2

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 93

Dados suportados no VTK: Tipos de células

Vertex

Polyvertex

Line

Polyline

Triangle

Triangle Strip

Quadrilateral

Pixel

Polygon

Tetrahedron

Hexahedron

Voxel

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 94

Dados suportados no VTK: Tipos de células

Classe vtkCell definida no VTK 4.2

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 95

Dados suportados no VTK: Conjuntos de dados

Grelha rectangular(Rectilinear Grid)

Pontos estruturados(Structured Points)

Pontos não estruturados(Unstructured Points)

Grelha não estruturada(Unstructured Grid)

Grelha estruturada(Structured Grid)

Dados poligonais(Polygonal Data)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 96

Dados suportados no VTK: Conjuntos de dados

vtkStructuredPointsImagens 2D e 3D

Pontos estruturados Grelha rectangularvtkRectilinearGridMalha rectangular

vtkStructuredGridMalha 2D

Grelha estruturada Dados poligonaisvtkPolyDataPontos, linhas,polígonos

vtkUnstructuredGridMalhas 2D/3D não estruturadas

Grelha não estruturada

(classes vtk para conjuntos de dados e exemplos de utilização)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 97

Dados suportados no VTK: Conjuntos de dados

Classe vtkDataSet definida no VTK 4.2

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 98

Dados suportados no VTK: Conjuntos de dados

Structured Points (pontos estruturados)O formato mais regular para grelhas;O tipo de dado mais compacto – a geometria do conjunto de dados édefinida com um reduzido número de linhas de pequeno comprimento; Ideal para imagens 1D, 2D e 3D envolvendo pixels e voxels (por exemplo de CTscans e outros dados amostrados de forma regular).

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 99

Dados suportados no VTK: Conjuntos de dados

Rectilinear Grid (grelha rectangular)Topologia regular, geometria semiregular alinhada com os eixos de coordenadas x-y-z;Geometria especificada por 3 listas (x, y, z) de coordenadas com valor crescente.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 100

Dados suportados no VTK: Conjuntos de dados

Structured Grid (grelha estruturada)Topologia regular, geometria irregular (por exemplo, uma “grelha curvilínea”); A lista dos pontos que definem o domínio dos dados é ordenada por coluna.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 101

Dados suportados no VTK: Conjuntos de dados

Polygonal Data (dados poligonais)Combinações arbitrárias de primitivas gráficas de superfície;Uma lista de pontos seguida por uma ou mais listas descrevendo a geometria: colecções de vértices, linhas, polígonos ou faixas de triângulos;Este tipo de dados é derivado frequentemente das várias operações do visualização (como por exemplo, determinação de contornos).

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 102

Dados suportados no VTK: Conjuntos de dados

Unstructured Grid (grelha não estruturada)Topologia irregular e geometria irregular;É necessária a lista dos vértices no domínio dos dados, assim como a lista das células devidamente indexadas na lista dos vértices de cada célula. Uma lista do tipo das células também é necessária.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 103

Dados suportados no VTK: Exemplos de malhas

As células podem ter diferentes formas e tamanhos:2D : triângulos, quadriláteros, ...3D : tetraedros, hexaedros, pirâmides, …

As malhas podem conter um ou mais tipo de células.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 104

Dados suportados no VTK: Tipos de atributos associados aos pontos e às células

Escalars Norma e

direcção (3D)

Vector

(u,v,w)Direcção (3D)

Normal

(nx,ny,nz)|n| = 1

Valor simples

Correspondência entre um índice e uma tabela de texturas

Coordenadas de textura

s

t2D: (u,v)3D: (u,v,w)

Matriz (n x n)

Tensor

a11 a12 a13a21 a22 a23a31 a32 a33

Tabela de dados

Tabela de arraysCada array pode serde tipo diferente

Array 0 Array 1 Array n-1. . .

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 105

Dados suportados no VTK: Tipos de atributos associados aos pontos e às células

Informação associada a cada vértice de uma célula:

Escalares (scalars): por exemplo, temperatura, pressão, ...;Vectores (vector): por exemplo, velocidades, acelerações, ...;Normais (normals): vectores normais àsuperfície;Coordenadas de textura (texture coordinates): gráficos específicos;Tensores (tensors): matrizes.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 106

Dados suportados no VTK: Tipos de atributos associados aos pontos e às célulasClasses vtkFieldDataSet e vtkDataSetAtributes definidas no VTK 4.2

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 107

Dados suportados no VTK: Tipos de atributos associados aos pontos e às célulasClasse vtkDataArraydefinida no VTK 4.2

Utilizada para arrays de dados de determinado tipo.

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 108

Formato de ficheiros do VTK

# vtk DataFile Version X.0 HeaderCool data TitleASCI I BINARY Data TypeDATASET type Geometry

type is one of:STRUCTURED_POINTSSTRUCTURED_GRIDRECTILINEAR_GRIDUNSTRUCTURED_GRIDPOLYDATAFIELD

POINT_DATA n Dataset attributes…CELL_DATA n… (Ver o documento VTK File Format em

http://www.vtk.org/pdf/file-formats.pdf)

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 109

Formato de ficheiros do VTK

# vtk DataFile Version 3.0vtk outputASCIIDATASET POLYDATAPOINTS 119 float197 192 53 196 186 53 201 188 51 161 192 55 168 192 45 165 197 39 ...POLYGONS 219 8763 0 1 2 3 3 4 5 3 6 7 8 ...

POINT_DATA 119SCALARS scalars floatLOOKUP_TABLE default53 53 51 55 45 39 71 69 76 61 68 58 40 62 37 40 65 36 ...

Exem

plo

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 110

Formato de ficheiros do VTK# vtk DataFile Version 3.0vtk outputASCIIDATASET POLYDATAPOINTS 16 float0.367063 0 0.333333 0.350198 0.040716 0.333333 0.259553 0.259553 0.333333 0.218837 0.276418 0.333333 -1.60449e-008 0.367063 0.333333 -0.040716 0.350198 0.333333 -0.259553 0.259553 0.333333 -0.276418 0.218837 0.333333 -0.367063 -3.20897e-008 0.333333 -0.350198 -0.040716 0.333333 -0.259553 -0.259553 0.333333 -0.218837 -0.276418 0.333333 4.37719e-009 -0.367063 0.333333 0.040716 -0.350198 0.333333 0.259553 -0.259553 0.333333 0.276418 -0.218837 0.333333 LINES 16 482 0 1 2 1 2 2 2 3 2 3 4 2 4 5 2 5 6 2 6 7 2 7 8 2 8 9 2 9 10 2 10 11 2 11 12 2 12 13 2 13 14 2 14 15 2 15 0

POINT_DATA 16SCALARS scalars floatLOOKUP_TABLE default0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333 0.333333

Exem

plo

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 111

Formato de ficheiros do VTK

# vtk DataFile Version 2.0A Simple Matrix of valuesASCIIDATASET STRUCTURED_POINTSDIMENSIONS 10 5 1ORIGIN 0 0 0SPACING 1 1 1

POINT_DATA 50SCALARS values floatLOOKUP_TABLE default0 0 0 0 0 0 0 0 0 00 1 1 0 0 0 0 0 0 00 1 1 1 0 0 0 0 0 00 0 1 1 1 1 1 0 0 00 0 0 0 0 0 0 0 0 0

Exem

plo

J. Tavares / J. Barbosa Visualização Cientifíca - Introdução ao VTK 112

Formato de ficheiros do VTK# vtk DataFile Version 1.0Line representation of vtkASCII

DATASET POLYDATAPOINTS 12 float0.0 2.0 0.01.0 0.0 0.02.0 2.0 0.03.0 0.0 0.03.0 3.0 0.02.5 2.0 0.03.5 2.0 0.04.0 0.0 0.04.0 3.0 0.05.0 2.0 0.04.0 1.0 0.05.0 0.0 0.0

LINES 5 173 0 1 22 3 42 5 62 7 83 9 10 11

Exem

plo