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

Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Grafos de Cena Alberto B. Raposo [email protected] abraposo/INF1366

Embed Size (px)

Citation preview

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

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Grafos de Cena

Alberto B. Raposo

[email protected]

http://www.tecgraf.puc-rio.br/~abraposo/INF1366

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

Alberto Raposo – PUC-Rio

Computação Gráfica e Áreas Correlatas

Imagem digitalImagem digital

ModelosModelos

processamento de imagens

visão computacional

computaçãográfica

(síntese deimagens)

modelagem geométrica

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

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

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

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.

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

Alberto Raposo – PUC-Rio

Descrição geométrica

Modelo 3D

Paramétrica

Poligonal

Partículas

Implícitas

2222 rzyx

2

4

cos

sin

y

x

John Dingliana, 2004

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

Alberto Raposo – PUC-Rio

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

John Dingliana, 2004

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

Alberto Raposo – PUC-Rio

Câmera

• A câmera é a visão do mundo virtual.– Geralmente ela é uma câmera de projeção

perspectiva

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

Alberto Raposo – PUC-Rio

Transformações• O objeto é posicionado no mundo virtual através

de uma transformação geométrica. – Transforma as

coordenadas locaisdo objeto nas coordenadas do mundovirtual.

– As transformações são importantes para definir a hierarquia dos objetos

• Exemplos: translação, rotação e escalamento

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

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.

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

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

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

Alberto Raposo – PUC-Rio Gouraud Phong

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

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

Alberto Raposo – PUC-Rio

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.

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

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ânticae espacialmente ao mundo modelado.

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

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.

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

Alberto Raposo – PUC-Rio

Estrutura Hierárquica da Cena

• Hierarquia de nós definindo o grafo hierárquico da cena

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

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 3D (rotação, translação e escala).

• Folha– Contêm, geralmente, a representação geométrica de um

objeto.

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

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.

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

Alberto Raposo – PUC-Rio

Herança de estado

• Atributos e transformações aplicadas hierarquicamente

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

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!

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

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.

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

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 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.

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

Alberto Raposo – PUC-Rio

Descarte por volume de visão(frustum culling)

descartado

totalmente visualizado

desce nível no grafo paraavaliar nós filhos

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

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.

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

Alberto Raposo – PUC-Rio

Descarte por oclusão (occlusion culling)

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

Alberto Raposo – PUC-Rio

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.

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

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.

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

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.

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

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 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.

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

Alberto Raposo – PUC-Rio

Exemplos de Grafos de Cena

• SGI OpenGL Performer

• Open Inventor

• OpenSceneGraph

• OpenSG

• OpenRM

• VRML / X3D

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

Alberto Raposo – PUC-Rio

Exemplo de Grafo de CenaSGI 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.

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

Alberto Raposo – PUC-Rio

Exemplo de Grafo de CenaSGI OpenGL Performer

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

Alberto Raposo – PUC-Rio

Exemplo de Grafo de CenaOpenScenGraph

• 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.

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

Alberto Raposo – PUC-Rio

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

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

Alberto Raposo – PUC-Rio

VRML - Exemplo

ViewpointViewpoint PointLightPointLight TransformTransform TransformTransformTransformTransform

ShapeShape ShapeShape ShapeShape

TextText

FontStyleFontStyle

AppearanceAppearanceSphereSphere

MaterialMaterial

AppearanceAppearance

MaterialMaterial

BoxBox

Grafo do exemplo anterior

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

Alberto Raposo – PUC-Rio

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)

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

Alberto Raposo – PUC-Rio

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”>]>

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

Alberto Raposo – PUC-Rio

X3D - Exemplo de Código <X3D> <Scene> <Transform> <children> <NavigationInfo headlight=“false” avatarSize=“0.25 1.6 0.75” type=“&#34;EXAMINE&#34;”/> <DirectionalLight/> <Transform translation=“3.0 0.0 1.0”>

<children> <Shape>

<geometry><Sphere radius=“2.3”/></geometry> <appearance><Appearance>

<material> <Material diffuseColor=“1.0 0.0 0.0”/></material> </Appearance></appearance> </Shape>

</children></Transform>

</children> </Transform> </Scene></X3D>

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

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Grafos de Cena

Alberto B. Raposo

[email protected]

http://www.tecgraf.puc-rio.br/~abraposo/INF1366