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

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

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

Apresentações semelhantes


Apresentação em tema: "INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366."— Transcrição da apresentação:

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

2 Abstract Node Types X3DChildNode X3DBoundedObject X3DGroupingNode
X3DInfoNode X3DUrlObject (Interface) Alberto Raposo – PUC-Rio

3 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 Alberto Raposo – PUC-Rio

4 X3D Profiles Alberto Raposo – PUC-Rio

5 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 bboxSize [0, ) ou Sem bounding box Alberto Raposo – PUC-Rio

6 X3DGroupingNode Implementa X3DChildNode e X3DBoundedObject Type
accessType Name Default Range Profile MFNode inputOutput children [ ] [X3DChildNode] Interchange inputOnly addChildren Interactive removeChildren SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) bboxSize [0, ) ou SFNode metadata NULL [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

7 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 Alberto Raposo – PUC-Rio

8 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) Alberto Raposo – PUC-Rio

9 Grouping Nodes Exemplos Group / StaticGroup Transform Inline LOD
Switch Anchor Billboard Collision Alberto Raposo – PUC-Rio

10 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 Alberto Raposo – PUC-Rio

11 Group / StaticGroup Alberto Raposo – PUC-Rio Ver exemplo animado

12 Transform Define systema de coordenadas para os filhos
Cada filho pode ter suas transformações, em relação ao sistema de coordenadas do pai. Alberto Raposo – PUC-Rio

13 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. Alberto Raposo – PUC-Rio

14 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 url NULL Interactive SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) Interchange bboxSize [0, ) ou SFNode metadata [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

15 Inline Alberto Raposo – PUC-Rio

16 LOD Implementa níveis de detalhes Type accessType Name Default Range
Profile SFVec3f initializeOnly center 0 0 0 (-, ) Immersive MFFloat range [ ] SFBool forceTransitions False Immersive (v 3.1) MFNode inputOutput children [X3DChildNode] Interchange bboxCenter bboxSize [0, ) ou SFNode metadata NULL [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

17 LOD Exemplo de LOD Alberto Raposo – PUC-Rio

18 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 children [ ] [X3DChildNode] Interchange SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) bboxSize [0, ) ou SFNode metadata NULL [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

19 Switch - Exemplo Alberto Raposo – PUC-Rio

20 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 url parameter MFNode children [ ] [X3DChildNode] inputOnly addChildren removeChildren SFVec3f initializeOnly bboxCenter 0 0 0 (-, ) bboxSize [0, ) ou SFNode metadata NULL [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

21 Anchor - parâmetros url parameter
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” Alberto Raposo – PUC-Rio

22 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 children [ ] [X3DChildNode] inputOnly addChildren Interactive removeChildren initializeOnly bboxCenter 0 0 0 bboxSize [0, ) ou SFNode metadata NULL [X3DMetadataObject] Core Exemplo de Billboard Alberto Raposo – PUC-Rio

23 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). Alberto Raposo – PUC-Rio

24 Collision Alberto Raposo – PUC-Rio Type accessType Name Default Range
Profile SFBool inputOutput enabled True Immersive SFTime collideTime outputOnly isActive SFNode initializeOnly proxy NULL Shape ou X3DChildNode MFNode children [ ] [X3DChildNode] inputOnly addChildren removeChildren SFVec3f bboxCenter 0 0 0 (-, ) bboxSize [0, ) ou metadata [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

25 Viewing & Navigation Nodes
X3DBindableNode Só um nó de cada tipo bindable pode estar ativo a cada instante Exemplos Viewpoint NavigationInfo Background TextureBackground Fog Alberto Raposo – PUC-Rio

26 X3DBindableNode Type accessType Name Default Range Profile SFBool
inputOnly set_bind Interactive outputOnly isBound SFTime bindTime SFNode inputOutput metadata NULL [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

27 Viewpoint (câmera) Type accessType Name Default Range Profile SFVec3f inputOutput centerOfRotation 0 0 0 (-, ) Interactive SFString description “” (null string) Immersive SFFloat fieldOfView  /4 (0, ) SFBool jump true SFRotration orientation [-1 1] (-, ) position inputOnly set_bind outputOnly isBound SFTime bindTime SFNode metadata NULL [X3DMetadataObject] Core centerOfRotation: ponto em torno do qual a câmera girará no EXAMINE Alberto Raposo – PUC-Rio

28 NavigationInfo Alberto Raposo – PUC-Rio

29 NavigationInfo type Alberto Raposo – PUC-Rio

30 NavigationInfo speed headlight transitionType
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) Alberto Raposo – PUC-Rio

31 NavigationInfo visibilityLimit avatarSize
Distância esperada do objeto mais distante visível 0 significa sem distância máxima avatarSize Alberto Raposo – PUC-Rio

32 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 Alberto Raposo – PUC-Rio

33 Apperance Alberto Raposo – PUC-Rio

34 Material Node Alberto Raposo – PUC-Rio

35 Material Node ambientIntensity diffuseColor
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 Alberto Raposo – PUC-Rio

36 Material Node emissiveColor specularColor e shininess transparency
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 Alberto Raposo – PUC-Rio

37 Material Nodes: Exemplos
Apenas 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 Alberto Raposo – PUC-Rio

38 Testando materiais Alberto Raposo – PUC-Rio

39 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 Cavalcanti Alberto Raposo – PUC-Rio

40 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 Cavalcanti Alberto Raposo – PUC-Rio

41 Espaço de Textura t 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 ] 1 1 s Cláudio Esperança e Paulo Roma Cavalcanti Alberto Raposo – PUC-Rio

42 Espaço de Textura Pode ser vantajoso assumir que o padrão da imagem se repete fora desse intervalo T (s, t) = Im [ (1 – t) N mod N, s M mod M ] Cláudio Esperança e Paulo Roma Cavalcanti Alberto Raposo – PUC-Rio

43 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 Cavalcanti Alberto Raposo – PUC-Rio

44 Exemplos de diferentes funções de mapeamento de textura
Alberto Raposo – PUC-Rio

45 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 u v i j s t Alberto Raposo – PUC-Rio Cláudio Esperança e Paulo Roma Cavalcanti

46 ImageTexture node Aplica imagens sobre geometria (.jpg, .png, .gif)
Exemplo Objeto com textura aplicada Objeto sem textura Imagem aplicada como textura Alberto Raposo – PUC-Rio

47 ImageTexture node Type accessType Name Default Range Profile MFString
inputOutput url [ ] [urn] Interchange SFBool initializeOnly repeatS true repeatT SFNode metadata NULL [X3DMetadataObject] Core Alberto Raposo – PUC-Rio

48 MovieTexture Node Aplica vídeo sobre geometria
Formato suportado Mpeg-1 Browsers podem suportar outros formatos, como .mov e .avi Alberto Raposo – PUC-Rio

49 MovieTexture Node Alberto Raposo – PUC-Rio

50 TextureTransform node
Transformações nas coordenadas de textura para melhor alinhar as imagens da textura à geometria Alberto Raposo – PUC-Rio

51 TextureTransform Node
Alberto Raposo – PUC-Rio

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


Carregar ppt "INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366."

Apresentações semelhantes


Anúncios Google