31
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

Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

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

Page 2: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

● 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

Page 3: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

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

● Máquina de estados

OpenGL - O que é?

Page 4: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

● Gerenciamento de janelas

● Tratamento de arquivos

OpenGL - O que ele não faz

Page 5: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

● 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

Page 6: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Pipeline

Page 7: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Wrappers para os objetos do OpenGL

● Buffer● Texture1D● Texture2D● TextureBuffer● VertexBuffer ● Shader● Program

Page 8: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

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

Grafo de cena

Page 9: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

● 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

Page 12: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Exemplo de código

Exemplo de aplicação simples usando a engine

Page 13: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor
Page 14: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor
Page 15: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor
Page 16: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor
Page 17: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor
Page 18: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Campo de grama

Page 19: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

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

Page 20: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Conceitos

Page 21: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Para que serve?

Page 22: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Representação elipsoidal

Autovalores e autovetores do tensor

Page 23: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Cérebro

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

Page 24: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Técnicas - Depth Peeling

Page 25: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Técnicas - Depth Peeling

Page 26: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Técnicas - Depth Peeling

Page 27: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Técnicas - Depth Peeling

Page 28: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Técnicas - Geometry Instancing

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

Page 29: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

● 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

Page 30: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

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.

Page 31: Pandora's Box Graphics Engine - USP · 2016. 2. 18. · Pandora's Box Graphics Engine Uma engine gráfica com aplicações em visualização científica Andrew T. N. Kurauchi Victor

Dúvidas?

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

Obrigado!