INF 1366 Computao Grfica Interativa Grafos de Cena
- Slides: 38
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 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 • 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 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 Implícitas Partículas
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 é 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 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 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 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, 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 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 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 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 Alberto Raposo – PUC-Rio
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 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
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 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 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 para avaliar nós filhos Alberto Raposo – PUC-Rio
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
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 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 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, 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 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 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 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) – 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 Alberto Raposo – PUC-Rio Sphere Appearance Text Material Font. Style
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”? > <!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. 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. br http: //www. tecgraf. puc-rio. br/~abraposo/INF 1366 Alberto Raposo – PUC-Rio
- Color 01122008
- Uniderp interativa portal
- Primer segundo tercer y cuarto cuadrante
- Grfica
- Ejemplos de funcion escalonada
- Grafo
- Componente conexa grafo
- Grafos conclusion
- Eulerizar um grafo
- Grafos eulerianos y hamiltonianos
- Anjolina grisi de oliveira
- Estructuras no lineales
- Grafos
- Busca em largura grafos
- Fleury
- Grafos
- Grafos f a c
- Banco de dados
- Busqueda en profundidad grafos
- Grafo rueda
- Grafo
- Digrafos ejemplos
- Grafo euler
- Grafos
- Grafos eulerianos
- Grafo
- Estructura de datos grafos
- Porno inf
- Inf
- Inf smartwatch
- Inf hartsol
- Inf
- Mag inf
- Point group of h2o
- 1^inf
- Inf
- Inf schule scratch
- Sha-256-digest-manifest
- Inf 110