52
Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366

Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo [email protected]

Embed Size (px)

Citation preview

Page 1: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

X3D: Grouping Nodes, Viewing & Navigation, Appearance

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 X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Abstract Node Types

• X3DChildNode

• X3DBoundedObject

• X3DGroupingNode

• X3DInfoNode

• X3DUrlObject (Interface)

Page 3: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

X3DChildNode

• Comum a todos os nós X3D.• Indica que o nó pode ser usado como filho de um

nó de agrupamento– Usado nos campos children, addChildren e

removeChildren de um X3DGroupingNode

Type accessType Name Default Range Profile

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Page 4: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

X3D Profiles

Page 5: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

X3DBoundedObject

• Objeto que pode ter uma “bounding box”, útil para determinar visibilidade e tratar colisão de objetos

Type accessType Name Default Range Profile

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interchange

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Interchange

Sem bounding box

Page 6: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

X3DGroupingNode

• Implementa X3DChildNode e X3DBoundedObject

Type accessType Name Default Range Profile

MFNode inputOutput children [ ] [X3DChildNode] Interchange

MFNode inputOnly addChildren [ ] [X3DChildNode] Interactive

MFNode inputOnly removeChildren [ ] [X3DChildNode] Interactive

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interchange

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Interchange

SFNode inputOutput metadata NULL [X3DMetadataObject]

Core

Page 7: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

X3DInfoNode e X3DUrlObject

• X3DInfoNode (permite que qualquer nó tenha metadados)

• X3DUrlObject

Type accessType Name Default Range Profile

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Type accessType Name Default Range Profile

MFString inputOutput url [ ] [ URN ] Interchange ou Interactive

Page 8: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Grouping Nodes

• Nós para agrupar outros nós, criando a estrutura hierárquica da cena.

• Objetivos:– Estruturar a cena, agrupando “pedaços” relacionados

– Criar subgrapfs de nós relacionados, facilitando, por exemplo, a animação

– Manter sistema de coordenadas comum

– Facilitar reuso de partes da cena (DEF e USE)

Page 9: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Grouping Nodes

• Exemplos– Group / StaticGroup

– Transform

– Inline

– LOD

– Switch

– Anchor

– Billboard

– Collision

Page 10: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Group / StaticGroup

• Apenas agrupa nós da cena

• StaticGroup não permite modificações (inserção, remoção, animação, ou qualquer alteração) nos seus nós filhos– Porém, o browser pode fazer otimizações na

estrutura interna do grafo de cena, aumentando desempenho da visualização

Page 11: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Group / StaticGroup

Ver exemplo animado

Page 12: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Transform

• Define systema de coordenadas para os filhos– Cada filho pode ter suas transformações, em relação ao

sistema de coordenadas do pai.

Page 13: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Inline

• Pega nó de um outro arquivo X3D– (do primeiro endereço válido a partir de uma

lista de urls).• Mais “forte” que um link em HTML, que só

direciona para um url.

• O Inline deve referenciar um arquivo X3D válido e que não ultrapasse as restrições de profile, componentes e nível do arquivo que o chama.

Page 14: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Inline

• Não permite inclusão e remoção de filhos (addChildren e removeChildren)

Type accessType Name Default Range Profile

SFBool inputOutput load true Immersive

MFString inputOutput url NULL Interactive

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interchange

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Interchange

SFNode inputOutput metadata NULL [X3DMetadataObject]

Core

Page 15: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Inline

Page 16: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

LOD

• Implementa níveis de detalhesType accessType Name Default Range Profile

SFVec3f initializeOnly center 0 0 0 (-, ) Immersive

MFFloat initializeOnly range [ ] (-, ) Immersive

SFBool initializeOnly forceTransitions False Immersive (v 3.1)

MFNode inputOutput children [ ] [X3DChildNode] Interchange

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interchange

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Interchange

SFNode inputOutput metadata NULL [X3DMetadataObject]

Core

Page 17: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

LOD

Exemplo de LOD

Page 18: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Switch• “Similar” ao LOD, mas é autor quem define qual dos

filhos será renderizado (apenas 1 pode ser renderizado a cada instante)– Usado, por exemplo, para animação de geometrias

Type accessType Name Default Range Profile

SInt32 inputOutput whichChoice -1 [-1, ) Immersive

MFNode inputOutput children [ ] [X3DChildNode] Interchange

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interchange

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Interchange

SFNode inputOutput metadata NULL [X3DMetadataObject]

Core

Page 19: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Switch - Exemplo

Page 20: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Anchor• É um hiperlink dentro da cena: move para outra câmera ou

outra cena X3D

Type accessType Name Default Range Profile

SFString inputOutput description “” (null string) Interactive

MFString inputOutput url “” (null string) Interactive

MFString inputOutput parameter “” (null string) Interactive

MFNode inputOutput children [ ] [X3DChildNode] Interactive

MFNode inputOnly addChildren [ ] [X3DChildNode] Interactive

MFNode inputOnly removeChildren [ ] [X3DChildNode] Interactive

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interactive

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Interactive

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Page 21: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Anchor - parâmetros

• url– Lista de urls de onde se pegará o primeiro

válido, ao se selecionar o(s) objeto(s) do Anchor

• parameter– Informações adicionais

• parameter = “target=blank”

• parameter = “target=frame_name”

Page 22: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Billboard

• Objetos do nó Billboard estão sempre “virados” de frente para a câmera.– Bom para texto, por exemplo.Type accessType Name Default Range Profile

SFVec3f inputOutput axisOfRotation 0 1 0 (-, ) Immersive

MFNode inputOutput children [ ] [X3DChildNode] Immersive

MFNode inputOnly addChildren [ ] [X3DChildNode] Interactive

MFNode inputOnly removeChildren [ ] [X3DChildNode] Interactive

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Immersive

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Immersive

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Exemplo de Billboard

Page 23: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Collision

• Detecta colisão entre câmera e objetos agrupados nesse nó.– Apenas nós geométricos provêem colisão, com

exceção de pontos, linhas e texto

• Pode ter um objeto proxy (não renderizado) que substitui a geometria real para efeito de cálculos de colisão (geralmente usado para otimização do cálculo).

Page 24: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Collision

Type accessType Name Default Range Profile

SFBool inputOutput enabled True Immersive

SFTime inputOutput collideTime Immersive

SFBool outputOnly isActive Immersive

SFNode initializeOnly proxy NULL Shape ou X3DChildNode Immersive

MFNode inputOutput children [ ] [X3DChildNode] Immersive

MFNode inputOnly addChildren [ ] [X3DChildNode] Immersive

MFNode inputOnly removeChildren [ ] [X3DChildNode] Immersive

SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Immersive

SFVec3f initializeOnly bboxSize -1 -1 -1 [0, ) ou -1 -1 -1 Immersive

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Page 25: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Viewing & Navigation Nodes

• X3DBindableNode– Só um nó de cada tipo bindable pode estar ativo

a cada instante– Exemplos

• Viewpoint• NavigationInfo• Background• TextureBackground• Fog

Page 26: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

X3DBindableNode

Type accessType Name Default Range Profile

SFBool inputOnly set_bind Interactive

SFBool outputOnly isBound Interactive

SFTime outputOnly bindTime Interactive

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Page 27: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Viewpoint (câmera)

Type accessType Name Default Range Profile

SFVec3f inputOutput centerOfRotation 0 0 0 (-, ) Interactive

SFString inputOutput description “” (null string) Immersive

SFFloat inputOutput fieldOfView /4 (0, ) Immersive

SFBool inputOutput jump true Interactive

SFRotration inputOutput orientation 0 0 1 0 [-1 1] (-, ) Interactive

SFVec3f inputOutput position 0 0 0 (-, ) Interactive

SFBool inputOnly set_bind Interactive

SFBool outputOnly isBound Interactive

SFTime outputOnly bindTime Interactive

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

centerOfRotation: ponto em torno do qual a câmera girará noEXAMINE

Page 28: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

NavigationInfo

Page 29: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

NavigationInfo

• type

Page 30: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

NavigationInfo

• speed– Velocidade com que o usuário navega na cena

• headlight– Se há uma luz direcional (não é luz spot – luz de

capacete de mineiro) na direção do look-at

• transitionType– Como se dá a trasição entre câmeras: TELEPORT,

LINEAR (interpolação), ou ANIMATE (browser-specific)

Page 31: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

NavigationInfo• visibilityLimit

– Distância esperada do objeto mais distante visível

– 0 significa sem distância máxima

• avatarSize

Page 32: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Aparência, Material e Textura

• Cada nó Shape tem:– 1 aparência (Appearance node) – 1 X3DGeometryNode

• Cada nó Appearance têm:– 1 Material node

• Transparência e uma série de propriedades de cor

– 1 FillProperties e 1 LineProperties nodes• Padrões para preenchimento e cores de borda

– 1 Texture node• Aplica imagem ou vídeo sobre superfície do objeto geométrico

Page 33: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Apperance

Page 34: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Material Node

Page 35: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Material Node

• ambientIntensity– O quanto de luz ambiente essa superfície reflete

(depende apenas das fontes de luz, e não de suas posiçõesem relação ao objeto)

• diffuseColor– Reflete as fontes de luz em função de seus

ângulos em relação à superfície: quanto mais direto, mais reflexão

Page 36: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Material Node

• emissiveColor– O quanto de luz o próprio objeto emite (i.e., ele será

visível sem nenhuma outra fonte de luz no ambiente)• specularColor e shininess

– Definem os highlights especulares em função do ângulo da fonte com o objeto e também do observador em relação ao objeto: se esses 2 ângulos forem próximos, maior a reflexão especular

– Menor shininess significa highlight mais “soft”• transparency

– 0 é opaco, e 1 e completamente transparente

Page 37: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Material Nodes: ExemplosApenas diffuseColor="1 0 0" Apenas emissiveColor="0 0 1"

Apenas specularColor="0 1 0" e diffuseColor="1 0 0"

Usando transparência parcial na esfera ao lado

Page 38: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Testando materiais

http://tog.acm.org/resources/applets/vrml/pellucid.html

Page 39: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Texturas

• Modelos de iluminação não são apropriados para descrever todas as diferenças de cor observáveis em uma superfície– Superfícies pintadas com padrões ou imagens

• A capa ou uma página de um livro

– Superfícies com padrões de rugosidade• Tecidos ou uma parede de tijolos

• Em princípio é possível modelar esses detalhes com geometria e usando materiais de propriedades óticas distintas

• Na prática, esses efeitos são modelados usando uma técnica chamada mapeamento de textura

Cláudio Esperança e Paulo Roma Cavalcantiwww.lcg.ufrj.br/Cursos/COS-751/texturas-ppt

Page 40: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Mapeamento de Textura

• A idéia é reproduzir sobre a superfície de algum objeto da cena as propriedades de alguma função – ou mapa - bidimensional (cor, por exemplo)

Cláudio Esperança e Paulo Roma Cavalcantiwww.lcg.ufrj.br/Cursos/COS-751/texturas-ppt

Page 41: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Espaço de Textura

• Texturas 2D são funções T (s, t) cujo domínio é um espaço bidimensional e o contradomínio pode ser cor, opacidade, etc

• É comum ajustar a escala da imagem de tal forma que a imagem toda se enquadre no intervalo 0 ≤ s, t ≤ 1

• Normalmente a função em si é derivada de alguma imagem capturada– Se a imagem está armazenada numa

matriz Im [0..N–1 , 0..M–1]

– Então T (s, t) = Im [ (1 – t) N , s M ]

t

s

1

1

0

0

Cláudio Esperança e Paulo Roma Cavalcantiwww.lcg.ufrj.br/Cursos/COS-751/texturas-ppt

Page 42: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Espaço de Textura

• Pode ser vantajoso assumir que o padrão da imagem se repete fora desse intervaloT (s, t) =

Im [ (1 – t) N mod N, s M mod M ]

Cláudio Esperança e Paulo Roma Cavalcantiwww.lcg.ufrj.br/Cursos/COS-751/texturas-ppt

Page 43: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Função de Mapeamento• Retorna o ponto do objeto correspondente a cada

ponto do espaço de textura(x, y, z) = F (s, t)

• Corresponde à forma com que a textura é usada para “embrulhar” (wrap) o objeto– Na verdade, na maioria dos casos, precisamos de uma

função que nos permita “desembrulhar” (unwrap) a textura do objeto, isto é, a inversa da função de mapeamento

• Se a superfície do objeto pode ser descrita em forma paramétrica esta pode servir como base para a função de mapeamento

Cláudio Esperança e Paulo Roma Cavalcantiwww.lcg.ufrj.br/Cursos/COS-751/texturas-ppt

Page 44: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Exemplos de diferentes funções de mapeamento de textura

Page 45: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

Processo de Mapeamento de Texturas

• Projeção do pixel sobre a superfície– Pontos da superfície

correspondentes aos vértices do pixel

• Parametrização– Coordenadas paramétricas dos

vértices do pixel projetados

• Mapeamento inverso– Coordenadas dos vértices no

espaço de textura• Média

– Cor média dos ‘Texels’ proporcional à àrea coberta pelo quadrilátero

uv

s

t

i

j

Cláudio Esperança e Paulo Roma Cavalcantiwww.lcg.ufrj.br/Cursos/COS-751/texturas-ppt

Page 46: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

ImageTexture node

• Aplica imagens sobre geometria (.jpg, .png, .gif)

• Exemplo

Objeto com textura aplicada

Objeto sem textura

Imagem aplicada como textura

Page 47: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

ImageTexture node

Type accessType Name Default Range Profile

MFString inputOutput url [ ] [urn] Interchange

SFBool initializeOnly repeatS true Interchange

SFBool initializeOnly repeatT true Interchange

SFNode inputOutput metadata NULL [X3DMetadataObject] Core

Page 48: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

MovieTexture Node

• Aplica vídeo sobre geometria

• Formato suportado Mpeg-1– Browsers podem suportar outros formatos,

como .mov e .avi

Page 49: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

MovieTexture Node

Page 50: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

TextureTransform node

• Transformações nas coordenadas de textura para melhor alinhar as imagens da textura à geometria

Page 51: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

TextureTransform Node

Page 52: Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

X3D: Grouping Nodes, Viewing & Navigation, Appearance

Alberto B. Raposo

[email protected]

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