A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INF 1366 – Computação Gráfica Interativa Grafos de Cena

Apresentações semelhantes


Apresentação em tema: "INF 1366 – Computação Gráfica Interativa Grafos de Cena"— Transcrição da apresentação:

1 INF 1366 – Computação Gráfica Interativa Grafos de Cena
Alberto B. Raposo Alberto Raposo – PUC-Rio

2 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

3 Conceitos Ambiente Virtual Grafo de Cena
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

4 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

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

6 Malhas de Polígonos Construção de modelos 3D 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 120 polígonos 300 polígonos 1000 polígonos Alberto Raposo – PUC-Rio John Dingliana, 2004

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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

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

16 Tipos de Nós Raiz Intermediários (internos ou de agrupamento) Folha
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 3D (rotação, translação e escala). Folha Contêm, geralmente, a representação geométrica de um objeto. Alberto Raposo – PUC-Rio

17 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

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

19 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

20 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

21 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 sua subárvore são descartados. Se o mesmo estiver completamente dentro do campo de visão, o nó e toda a sua subárvore são percorridos. Caso a interseção seja parcial, o teste é refeito durante o percurso da subárvore. Alberto Raposo – PUC-Rio

22 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

23 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

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

25 Organização espacial Se um nó for descartado, toda a sua 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

26 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

27 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

28 Grafos de Cena Produtividade Portabilidade Escalabilidade
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 OpenGL. 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

29 Exemplos de Grafos de Cena
SGI OpenGL Performer Open Inventor OpenSceneGraph OpenSG OpenRM VRML / X3D Alberto Raposo – PUC-Rio

30 Exemplo de Grafo de Cena SGI OpenGL Performer
Interface de programação para desenvolvimento de aplicações gráficas 3D em tempo real. Funciona em IRIX, Linux e Windows Baseado em OpenGL. 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

31 Exemplo de Grafo de Cena SGI OpenGL Performer
Alberto Raposo – PUC-Rio

32 Exemplo de Grafo de Cena OpenScenGraph
Interface de programação construída sobre OpenGL 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 OpenSceneGraph é 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

33 VRML X3D é evolução da VRML (Virtual Reality Modeling Language)
Surgiu da necessidade de prover um formato gráfico 3D 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

34 VRML - Exemplo Grafo do exemplo anterior Viewpoint PointLight
Transform Transform Transform Shape Shape Shape Box Appearance Sphere Appearance Text Material Material FontStyle Alberto Raposo – PUC-Rio

35 X3D (Extensible 3D) 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, GeoVRML) Alberto Raposo – PUC-Rio

36 X3D - Exemplo de Código <?xml version=“1.0” encoding=“utf-8”?>
<!DDOCTYPE X3D PUBLIC “http://www.web3D.org/TaskGroups/x3d/translation/x3d-compromise.dtd” “file://localhost/C:/www.web3D.org/TaskGroups/x3d/translation/x3d-compromise.dtd” [ <!ENTITY % VRML97Profile “INCLUDE”> <!ENTITY % CoreProfile “IGNORE”> <!ENTITY % X3dExtensions “IGNORE”> <!ENTITY % GeoVrmlProfile “INCLUDE”> <!ENTITY % HAnimProfile “INCLUDE”> ]> Alberto Raposo – PUC-Rio

37 X3D - Exemplo de Código <X3D> <Scene> <Transform>
<children> <NavigationInfo headlight=“false” avatarSize=“ ” type=“"EXAMINE"”/> <DirectionalLight/> <Transform translation=“ ”> <Shape> <geometry><Sphere radius=“2.3”/></geometry> <appearance><Appearance> <material> <Material diffuseColor=“ ”/></material> </Appearance></appearance> </Shape> </children> </Transform> </Scene> </X3D> Alberto Raposo – PUC-Rio

38 INF 1366 – Computação Gráfica Interativa Grafos de Cena
Alberto B. Raposo Alberto Raposo – PUC-Rio


Carregar ppt "INF 1366 – Computação Gráfica Interativa Grafos de Cena"

Apresentações semelhantes


Anúncios Google