Proposta de Monografia

Resumo da monografia

Voltar para o topo

O desenvolvimento de programas de computação gráfica em tempo real exige a aplicação de um vasto conjunto de técnicas de otimização que são recorrentes em diversas aplicações. Por esse motivo são desenvolvidas engines gráficas como OpenSceneGraph[4] e Ogre3D[5]. Entretanto, tais engines evoluíram de tal forma que o tempo de aprendizagem é longo. O intuito desse trabalho é desenvolver uma engine gráfica que implemente técnicas básicas de computação gráfica e que seja fácil de ser aprendida e utilizada.

O estudo de tensores e campos tensoriais é de importância fundamental para diversas áreas do conhecimento. São encontradas aplicações no estudo de fenômenos sísmicos[1], estruturas eletrônicas[2] e imagens de ressonância magnética sensíveis a difusão[3]. A visualização de tais campos é, portanto, de grande relevância para o avanço do conhecimento. Por esse motivo uma das aplicações desenvolvidas com o auxílio da engine será um programa que permita tais visualizações. Serão utilizados para testes a visualização da representação elipsoidal de campos tensoriais provenientes de imagens de ressonância magnética sensíveis a difusão e campos representativos de deformações físicas em 3 dimensões

Objetivos do trabalho

Voltar para o topo

Com o Pandora's Box Graphic Engine visa-se atingir os seguintes objetivos:

  • Construir uma engine gráfica de fácil utilização e aprendizado com a linguagem C++
  • Criar uma ferramenta para a visualização em tempo real da representação elipsoidal de campos tensoriais em 3 dimensões

Atividades já realizadas

Voltar para o topo

As seguintes atividades já foram desenvolvidas:

  • Estudo inicial sobre tensores e visualização de campos tensoriais
  • Codificação da estrutura geral da engine:
    • Renderizador
    • Grafo de cena
    • Gerenciador de janelas
    • Câmera
    • Transformações lineares
    • Modelos
    • Luzes
    • Suporte a shaders customizados
  • Leitura de campos tensoriais representados em arquivos no formato Analyze®[6]
  • Cálculo dos autovalores e autovetores dos tensores e renderização da representação elipsoidal de tensores

Cronograma de Atividades

Voltar para o topo

Janeiro de 2011Definição e criação dos nós do grafo de cena que serão inicialmente suportados
Fevereiro de 2011Implementação do buffer de vértices e do renderizador do grafo de cena
Março de 2011Implementação da classe responsável por gerenciar os shaders e criação de modelos geométricos básicos
Abril de 2011Suporte inicial a texturas e criação de métodos que calculam autovalores e autovetores de matrizes 3x3
Maio de 2011Suporte a renderização eficiente de várias instâncias de um mesmo modelo (renderização instanciada) e a arquivos Analyze® (representação de campos tensoriais) e versão inicial da visualização do campo
Junho de 2011Implementação da técnica de renderização em texturas e iniciar modificações na engine para utilizar a técnica de iluminação deferida e aplicação das técnicas de renderização instanciada e outras otimizações na visualização do campo tensorial
Julho de 2011Continuação da implementação do suporte a iluminação deferida e adicionar suporte a pós-processamento da cena renderizada e implementação de um jogo simples como exemplo de utilização genérica da engine
Agosto de 2011Desenvolvimento de mais exemplos de uso e implementação de frustum culling na engine
Setembro de 2011Limpeza de código e, se houver disponibilidade de tempo, adicionar suporte a modelos translúcidos

Estrutura esperada da monografia

Voltar para o topo

Introdução

Apresentação de engines gráficas alternativas existentes e os motivos para a criação de mais uma alternativa. Importância da visualização de campos tensoriais e como uma engine gráfica pode auxiliar o desenvolvimento de aplicações com tal propósito.

Conceitos e tecnologias estudadas

Conceitos utilizados na implementação da engine, assim como tensores e suas formas de visualização. Além de uma breve introdução ao OpenGL e C++.

Atividades realizadas

Idéias aplicadas na solução dos problemas.

Resultados e produtos obtidos

Trechos de código relevantes e resultados obtidos.

Conclusões

Considerações e futuro do projeto desenvolvido.

Bibliografia

Referências bibliográficas utilizadas ao longo do desenvolvimento da engine.