INF 1366 Computao Grfica Interativa Grafos de Cena

  • Slides: 38
Download presentation
INF 1366 – Computação Gráfica Interativa Grafos de Cena Alberto B. Raposo abraposo@tecgraf. puc-rio.

INF 1366 – Computação Gráfica Interativa Grafos de Cena Alberto B. Raposo abraposo@tecgraf. puc-rio. br http: //www. tecgraf. puc-rio. br/~abraposo/INF 1366 Alberto Raposo – PUC-Rio

Computação Gráfica e Áreas Correlatas processamento de imagens Imagem digital computação gráfica (síntese de

Computação Gráfica e Áreas Correlatas processamento de imagens Imagem digital computação gráfica (síntese de imagens) visão computacional Modelos modelagem geométrica Alberto Raposo – PUC-Rio

Conceitos • Ambiente Virtual – representação de diversos aspectos do mundo real ou abstrato

Conceitos • Ambiente Virtual – representação de diversos aspectos do mundo real ou abstrato • Grafo de Cena – ferramentas conceituais para representação de ambientes virtuais tridimensionais nas aplicações de computação gráfica • • posição do objeto forma (descrição geométrica) textura da superfície iluminação, etc Alberto Raposo – PUC-Rio

Descrição geométrica • É qualquer maneira de se representar a forma da entidade que

Descrição geométrica • É qualquer maneira de se representar a forma da entidade que pode ser processada para se obter uma imagem dessa entidade. – A maneira mais comum é a representação aproximada por um conjunto (malhas) de polígonos (mais especificamente por triângulos). – O grau de complexidade da descrição geométrica é, em geral, diretamente proporcional à qualidade visual, porém inversamente proporcional à velocidade com que a imagem é gerada. Alberto Raposo – PUC-Rio

Descrição geométrica John Dingliana, 2004 Poligonal Paramétrica Alberto Raposo – PUC-Rio Modelo 3 D

Descrição geométrica John Dingliana, 2004 Poligonal Paramétrica Alberto Raposo – PUC-Rio Modelo 3 D Implícitas Partículas

Malhas de Polígonos • Construção de modelos 3 D usando grupos de polígonos. –

Malhas de Polígonos • Construção de modelos 3 D usando grupos de polígonos. – Como cada polígono é planar, necessita-se grande quantidade de polígonos para dar a impressão de superfícies curvas 48 polígonos Alberto Raposo – PUC-Rio 120 polígonos 300 polígonos 1000 polígonos John Dingliana, 2004

Câmera • A câmera é a visão do mundo virtual. – Geralmente ela é

Câmera • A câmera é a visão do mundo virtual. – Geralmente ela é uma câmera de projeção perspectiva Alberto Raposo – PUC-Rio

Transformações • O objeto é posicionado no mundo virtual através de uma transformação geométrica.

Transformações • O objeto é posicionado no mundo virtual através de uma transformação geométrica. – Transforma as coordenadas locais do objeto nas coordenadas do mundo virtual. – As transformações são importantes para definir a hierarquia dos objetos • Exemplos: translação, rotação e escalamento Alberto Raposo – PUC-Rio

Aparência • Material, textura, transparência, sombra e reflexão estão entre os diversos atributos que

Aparência • Material, textura, transparência, sombra e reflexão estão entre os diversos atributos que definem a aparência de um objeto. • Assim como a descrição geométrica, a aparência interfere diretamente na imagem final sendo gerada e na velocidade de geração. Alberto Raposo – PUC-Rio

Comportamento • Um objeto pode ser estático ou dinâmico. O objeto dinâmico é aquele

Comportamento • Um objeto pode ser estático ou dinâmico. O objeto dinâmico é aquele que muda de posição, forma ou aparência entre um quadro e outro Alberto Raposo – PUC-Rio

Iluminação • Várias fontes de luz podem ser adicionadas à cena (puntual, direcional, spotlight,

Iluminação • Várias fontes de luz podem ser adicionadas à cena (puntual, direcional, spotlight, etc. ) • Vários são os modelos de iluminação que podem ser empregados – Gouraud – Phong, etc Alberto Raposo – PUC-Rio Gouraud Phong

Grafo de Cena • Todos os aspectos anteriores (descrição geométrica, transformações, câmera, etc) devem

Grafo de Cena • Todos os aspectos anteriores (descrição geométrica, transformações, câmera, etc) devem ser inseridos em um grafo de cena para representar o ambiente virtual. Alberto Raposo – PUC-Rio

Grafo de Cena • O grafo de cena é formado por nós conectados por

Grafo de Cena • O grafo de cena é formado por nós conectados por arestas compondo um grafo acíclico direcionado. • Cada nó possui um conjunto de atributos que podem, ou não, influenciar seus nós conectados. • Os nós são organizados de uma maneira hierárquica correspondendo semântica e espacialmente ao mundo modelado. Alberto Raposo – PUC-Rio

Grafo de Cena • Noção de agrupamento espacial é essencial. – Grafo ao lado

Grafo de Cena • Noção de agrupamento espacial é essencial. – Grafo ao lado representa semanticamente a mesma casa do exemplo anterior, mas não representa organização espacial. Alberto Raposo – PUC-Rio

Estrutura Hierárquica da Cena • Hierarquia de nós definindo o grafo hierárquico da cena

Estrutura Hierárquica da Cena • Hierarquia de nós definindo o grafo hierárquico da cena Alberto Raposo – PUC-Rio

Tipos de Nós • Raiz – Primeiro nó do grafo e todos os outros

Tipos de Nós • Raiz – Primeiro nó do grafo e todos os outros nós estão ligados a ele direta ou indiretamente. • Intermediários (internos ou de agrupamento) – Possuem várias propriedades, sendo o uso mais comum o de representar transformações 3 D (rotação, translação e escala). • Folha – Contêm, geralmente, a representação geométrica de um objeto. Alberto Raposo – PUC-Rio

Herança de estado • Os grafos de cena implementam um princípio chamado de herança

Herança de estado • Os grafos de cena implementam um princípio chamado de herança de estado. – Nós internos armazenam o estado do sistema, onde estado significa a posição e a orientação dos objetos no ambiente virtual e seus atributos de aparência. – A herança de estado é uma propriedade dos grafos de cena que determina que cada nó deve herdar as propriedades de estado de todos os seus ancestrais no grafo até a raiz. Alberto Raposo – PUC-Rio

Herança de estado • Atributos e transformações aplicadas hierarquicamente Alberto Raposo – PUC-Rio

Herança de estado • Atributos e transformações aplicadas hierarquicamente Alberto Raposo – PUC-Rio

Grafos de Cena • Organização hierárquica da cena • Otimizações essenciais para visualização em

Grafos de Cena • Organização hierárquica da cena • Otimizações essenciais para visualização em tempo real em RV – Descartes (retirar da cena objetos que não aparecem na visualização) – LOD (Level of Detail) Ø Melhoria no desempenho da aplicação! Alberto Raposo – PUC-Rio

Volume envolvente (bounding box) • Geralmente uma caixa alinhada ou uma esfera, que engloba

Volume envolvente (bounding box) • Geralmente uma caixa alinhada ou uma esfera, que engloba o conteúdo de todos os nós abaixo do nó em questão. Alberto Raposo – PUC-Rio

Descarte por volume de visão (frustum culling) • O grafo de cena testa a

Descarte por volume de visão (frustum culling) • O grafo de cena testa a interseção do volume envolvente do nó com o volume de visão do observador. – Se o volume envolvente estiver completamente fora do campo de visão, o nó e toda a subárvore são descartados. – Se o mesmo estiver completamente dentro do campo de visão, o nó e toda a subárvore são percorridos. – Caso a interseção seja parcial, o teste é refeito durante o percurso da subárvore. Alberto Raposo – PUC-Rio

Descarte por volume de visão (frustum culling) descartado totalmente visualizado desce nível no grafo

Descarte por volume de visão (frustum culling) descartado totalmente visualizado desce nível no grafo para avaliar nós filhos Alberto Raposo – PUC-Rio

Descarte por oclusão (occlusion culling) • Objetivo de evitar a renderização de primitivas que

Descarte por oclusão (occlusion culling) • Objetivo de evitar a renderização de primitivas que estejam ocultas por outras partes da cena. • A idéia por trás dos algoritmos de oclusão é realizar algum pré-processamento ou alguns testes durante a renderização para evitar que dados sejam enviados desnecessariamente para a placa. Alberto Raposo – PUC-Rio

Descarte por oclusão (occlusion culling) Alberto Raposo – PUC-Rio

Descarte por oclusão (occlusion culling) Alberto Raposo – PUC-Rio

Organização espacial • Se um nó for descartado, toda a subárvore será descartada. Por

Organização espacial • Se um nó for descartado, toda a subárvore será descartada. Por esse motivo, uma cena organizada espacialmente será muito mais eficiente do que uma cena que foi montada aleatoriamente. Alberto Raposo – PUC-Rio

LOD – Level of Detail • À medida que à distância da câmera a

LOD – Level of Detail • À medida que à distância da câmera a um modelo aumenta, o espaço por este ocupado na janela diminui e, conseqüentemente, o detalhe com que é visualizado também diminui. • O LOD permite definir representações alternativas para um objeto gráfico, cada uma sendo ativada de acordo com a distância ao observador. Alberto Raposo – PUC-Rio

LOD • Torna-se desnecessário e ineficiente definir o objeto com todo detalhe. O objetivo

LOD • Torna-se desnecessário e ineficiente definir o objeto com todo detalhe. O objetivo principal é o de utilizar diferentes representações de um modelo, normalmente de resoluções distintas, que serão selecionadas de acordo com um critério de decisão pré-determinado. Um dos critérios de decisão mais utilizado é à distância do modelo à câmera. Alberto Raposo – PUC-Rio

Grafos de Cena • Produtividade – Grafo de cena gerencia toda a parte gráfica,

Grafos de Cena • Produtividade – Grafo de cena gerencia toda a parte gráfica, reduzindo as várias linhas de código que seriam necessárias para implementar a mesma funcionalidade utilizando uma interface de programação baixo nível, como a Open. GL. • Portabilidade – Grafos de cena encapsulam as tarefas de baixo nível necessárias para renderizar a cena e ler e escrever arquivos, reduzindo, ou até mesmo extinguindo, a quantidade de código que é específica de alguma plataforma. • Escalabilidade – Grafos de cena são feitos para funcionar em configurações simples baseadas em computadores de mesa e placas gráficas aceleradoras convencionais ou em hardware complexo, como cluster de máquinas gráficas. Alberto Raposo – PUC-Rio

Exemplos de Grafos de Cena • • • SGI Open. GL Performer Open Inventor

Exemplos de Grafos de Cena • • • SGI Open. GL Performer Open Inventor Open. Scene. Graph Open. SG Open. RM VRML / X 3 D Alberto Raposo – PUC-Rio

Exemplo de Grafo de Cena SGI Open. GL Performer • Interface de programação para

Exemplo de Grafo de Cena SGI Open. GL Performer • Interface de programação para desenvolvimento de aplicações gráficas 3 D em tempo real. • Funciona em IRIX, Linux e Windows • Baseado em Open. GL. • Excelente solução para renderização em tempo real. • Solução comercial de alto custo • Desenvolvida especialmente para equipamentos da Silicon Graphics. – Em outros equipamentos, boa parte das otimizações não estão presentes. Alberto Raposo – PUC-Rio

Exemplo de Grafo de Cena SGI Open. GL Performer Alberto Raposo – PUC-Rio

Exemplo de Grafo de Cena SGI Open. GL Performer Alberto Raposo – PUC-Rio

Exemplo de Grafo de Cena Open. Scen. Graph • Interface de programação construída sobre

Exemplo de Grafo de Cena Open. Scen. Graph • Interface de programação construída sobre Open. GL • Responsável pela gerência do grafo de cena e otimizações gráficas • Multi-plataforma, gratuito e de código aberto • Por ser orientado a objetos, o Open. Scene. Graph é bastante extensível, permitindo ao usuário a criação de novas funcionalidades sem a necessidade de modificação do seu código fonte. Alberto Raposo – PUC-Rio

VRML • X 3 D é evolução da VRML (Virtual Reality Modeling Language) –

VRML • X 3 D é evolução da VRML (Virtual Reality Modeling Language) – Surgiu da necessidade de prover um formato gráfico 3 D para a Web • Modelo similar à HTML – linguagem textual – independente de plataforma – Linguagem independente de plataforma para a publicação de “páginas” Web tridimensionais – Objetivo: prover ricos ambientes tridimensionais interativos, permitindo ao usuário definir mundos estáticos e animados, e interagir com eles – Linguagem escolhida como referência: Open Inventor Alberto Raposo – PUC-Rio

VRML Exemplo Grafo do exemplo anterior Viewpoint Box Point. Light Transform Shape Appearance Material

VRML Exemplo Grafo do exemplo anterior Viewpoint Box Point. Light Transform Shape Appearance Material Alberto Raposo – PUC-Rio Sphere Appearance Text Material Font. Style

X 3 D (Extensible 3 D) • Proposta para nova versão de VRML –

X 3 D (Extensible 3 D) • Proposta para nova versão de VRML – Compatibilidade com VRML 97 – Integração com XML • definição de um novo conjunto de tags adequado à classe de documentos que se deseja representar – Componentização • funcionalidade crucial encapsulada em um núcleo – Extensibilidade • núcleo expandido para prover novas funcionalidades (e. g. , H-Anim, Geo. VRML) Alberto Raposo – PUC-Rio

X 3 D - Exemplo de Código <? xml version=“ 1. 0” encoding=“utf-8”? >

X 3 D - Exemplo de Código <? xml version=“ 1. 0” encoding=“utf-8”? > <!DDOCTYPE X 3 D PUBLIC “http: //www. web 3 D. org/Task. Groups/x 3 d/translation/x 3 d-compromise. dtd” “file: //localhost/C: /www. web 3 D. org/Task. Groups/x 3 d/translation/x 3 d-compromise. dtd” [ <!ENTITY % VRML 97 Profile “INCLUDE”> <!ENTITY % Core. Profile “IGNORE”> <!ENTITY % X 3 d. Extensions “IGNORE”> <!ENTITY % Geo. Vrml. Profile “INCLUDE”> <!ENTITY % HAnim. Profile “INCLUDE”> ]> Alberto Raposo – PUC-Rio

X 3 D - Exemplo de Código <X 3 D> <Scene> <Transform> <children> <Navigation.

X 3 D - Exemplo de Código <X 3 D> <Scene> <Transform> <children> <Navigation. Info headlight=“false” avatar. Size=“ 0. 25 1. 6 0. 75” type=“" EXAMINE" ”/> <Directional. Light/> <Transform translation=“ 3. 0 0. 0 1. 0”> <children> <Shape> <geometry><Sphere radius=“ 2. 3”/></geometry> <appearance><Appearance> <material> <Material diffuse. Color=“ 1. 0 0. 0”/></material> </Appearance></appearance> </Shape> </children> </Transform> </Scene> </X 3 D> Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa Grafos de Cena Alberto B. Raposo abraposo@tecgraf. puc-rio.

INF 1366 – Computação Gráfica Interativa Grafos de Cena Alberto B. Raposo abraposo@tecgraf. puc-rio. br http: //www. tecgraf. puc-rio. br/~abraposo/INF 1366 Alberto Raposo – PUC-Rio