Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica...

Post on 07-Apr-2016

221 views 1 download

Transcript of Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica...

Pandora's Box Graphics Engine

Uma engine gráfica com aplicações em visualização científica

Andrew T. N. Kurauchi Victor K. Harada

Orientador: Prof. Dr. Marcel Parolin Jackowski

• Construir uma engine de fácil aprendizado e utilização

• Aplicar técnicas avançadas de computação gráfica

• Desenvolver um visualizador da representação elipsoidal de campos tensoriais

Objetivos

• Uma especificação aberta de interface de software para o hardware gráfico (GPU)

• Máquina de estados

OpenGL - O que é?

• Gerenciamento de janelas

• Tratamento de arquivos

OpenGL - O que ele não faz

• Criação de formas a partir de primitivas (pontos, retas e polígonos)

• Mapeamento de primitivas (3D) para um buffer (2D)

OpenGL - O que ele faz

Pipeline

Wrappers para os objetos do OpenGL

• Buffer• Texture1D• Texture2D• TextureBuffer• VertexBuffer • Shader• Program

Para poder lidar com estruturas de cenas complexas a Pandora's Box utiliza um grafo de cena.

Grafo de cena

• Update pass (único passo obrigatório)

• Processamento de cena (Informações sobre a câmera estão acessíveis)

• Pós-processamento da cena (Informações sobre a câmera não são mais acessíveis)

Renderizador

Frustum culling

Fonte: http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&fname=/SGI_Developer/Optimizer_PG/ch05.html

Frustum culling

Fonte: http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&fname=/SGI_Developer/Optimizer_PG/ch05.html

Exemplo de código

Exemplo de aplicação simples usando a engine

Campo de grama

IRM = Imagem de Ressonância Magnética

• Imagens em três dimensões

• Difusão da água (tecidos vivos)

• Informações da difusão média da água em cada ponto representada por tensores

IRM sensíveis a difusão

Conceitos

Para que serve?

Representação elipsoidal

Autovalores e autovetores do tensor

Cérebro

Visualização da representação elipsoidal do campo de tensores de difusão de um cérebro humano

Técnicas - Depth Peeling

Técnicas - Depth Peeling

Técnicas - Depth Peeling

Técnicas - Depth Peeling

Técnicas - Geometry Instancing

model = new Model;for(id = 0; id < instances; id++) {    drawInstance(model, id);}

• Aprimorar o framework de shaders para utilizar o conceito de injeção de dependências

• Separar o contexto de renderização da classe GraphicAPI

• Criar proxies para os objetos internos

• Executar o renderizador em uma thread própria

Trabalho futuro

Referências

• cplusplus.com - the c++ resources network. http://www.cplusplus.com/. Acessado em agosto de 2011.

• Peter B. Kingsley. Introduction to diffusion tensor imaging mathematics: Part I. Tensors, rotations, and eigenvectors. Concepts in Magnetic Resonance Part A, 28A(2):101–122, March 2006.

• Opengl 4.1 reference pages. http://www.opengl.org/sdk/docs/man4. Acessado em junho de 2011.

• SHREINER, Dave. OpenGL Programming Guide. 7. ed. Addison-Wesley, 2010. 885p.

Dúvidas?

Código disponível em:https://github.com/victorkendy/PandoraBox

Obrigado!