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

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

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

Apresentações semelhantes


Apresentação em tema: "Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D: Grouping Nodes, Viewing & Navigation, Appearance Alberto B. Raposo"— Transcrição da apresentação:

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

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

3 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 TypeaccessTypeNameDefaultRangeProfile SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

4 Alberto Raposo – PUC-Rio X3D Profiles

5 Alberto Raposo – PUC-Rio X3DBoundedObject Objeto que pode ter uma bounding box, útil para determinar visibilidade e tratar colisão de objetos TypeaccessTypeNameDefaultRangeProfile SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Interchange SFVec3finitializeOnlybboxSize [0, ) ou Interchange Sem bounding box

6 Alberto Raposo – PUC-Rio X3DGroupingNode Implementa X3DChildNode e X3DBoundedObject TypeaccessTypeNameDefaultRangeProfile MFNodeinputOutputchildren[ ][X3DChildNode]Interchange MFNodeinputOnlyaddChildren[ ][X3DChildNode]Interactive MFNodeinputOnlyremoveChildren[ ][X3DChildNode]Interactive SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Interchange SFVec3finitializeOnlybboxSize [0, ) ou Interchange SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

7 Alberto Raposo – PUC-Rio X3DInfoNode e X3DUrlObject X3DInfoNode (permite que qualquer nó tenha metadados) X3DUrlObject TypeaccessTypeNameDefaultRangeProfile SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core TypeaccessTypeNameDefaultRangeProfile MFStringinputOutputurl[ ][ URN ]Interchange ou Interactive

8 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)

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

10 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

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

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

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

14 Alberto Raposo – PUC-Rio Inline Não permite inclusão e remoção de filhos (addChildren e removeChildren) TypeaccessTypeNameDefaultRangeProfile SFBoolinputOutputloadtrueImmersive MFStringinputOutputurlNULLInteractive SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Interchange SFVec3finitializeOnlybboxSize [0, ) ou Interchange SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

15 Alberto Raposo – PUC-Rio Inline

16 Alberto Raposo – PUC-Rio LOD Implementa níveis de detalhes TypeaccessTypeNameDefaultRangeProfile SFVec3finitializeOnlycenter0 0 0 (-, ) Immersive MFFloatinitializeOnlyrange[ ] (-, ) Immersive SFBoolinitializeOnlyforceTransitionsFalseImmersive (v 3.1) MFNodeinputOutputchildren[ ][X3DChildNode]Interchange SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Interchange SFVec3finitializeOnlybboxSize [0, ) ou Interchange SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

17 Alberto Raposo – PUC-Rio LOD Exemplo de LOD

18 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 TypeaccessTypeNameDefaultRangeProfile SInt32inputOutputwhichChoice [-1, ) Immersive MFNodeinputOutputchildren[ ][X3DChildNode]Interchange SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Interchange SFVec3finitializeOnlybboxSize [0, ) ou Interchange SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

19 Alberto Raposo – PUC-Rio Switch - Exemplo

20 Alberto Raposo – PUC-Rio Anchor É um hiperlink dentro da cena: move para outra câmera ou outra cena X3D TypeaccessTypeNameDefaultRangeProfile SFStringinputOutputdescription (null string)Interactive MFStringinputOutputurl (null string)Interactive MFStringinputOutputparameter (null string)Interactive MFNodeinputOutputchildren[ ][X3DChildNode]Interactive MFNodeinputOnlyaddChildren[ ][X3DChildNode]Interactive MFNodeinputOnlyremoveChildren[ ][X3DChildNode]Interactive SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Interactive SFVec3finitializeOnlybboxSize [0, ) ou Interactive SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

21 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

22 Alberto Raposo – PUC-Rio Billboard Objetos do nó Billboard estão sempre virados de frente para a câmera. –Bom para texto, por exemplo. TypeaccessTypeNameDefaultRangeProfile SFVec3finputOutputaxisOfRotation0 1 0 (-, ) Immersive MFNodeinputOutputchildren[ ][X3DChildNode]Immersive MFNodeinputOnlyaddChildren[ ][X3DChildNode]Interactive MFNodeinputOnlyremoveChildren[ ][X3DChildNode]Interactive SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Immersive SFVec3finitializeOnlybboxSize [0, ) ou Immersive SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core Exemplo de Billboard

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

24 Alberto Raposo – PUC-Rio Collision TypeaccessTypeNameDefaultRangeProfile SFBoolinputOutputenabledTrueImmersive SFTimeinputOutputcollideTimeImmersive SFBooloutputOnlyisActiveImmersive SFNodeinitializeOnlyproxyNULLShape ou X3DChildNodeImmersive MFNodeinputOutputchildren[ ][X3DChildNode]Immersive MFNodeinputOnlyaddChildren[ ][X3DChildNode]Immersive MFNodeinputOnlyremoveChildren[ ][X3DChildNode]Immersive SFVec3finitializeOnlybboxCenter0 0 0 (-, ) Immersive SFVec3finitializeOnlybboxSize [0, ) ou Immersive SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

25 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

26 Alberto Raposo – PUC-Rio X3DBindableNode TypeaccessTypeNameDefaultRangeProfile SFBoolinputOnlyset_bindInteractive SFBooloutputOnlyisBoundInteractive SFTimeoutputOnlybindTimeInteractive SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

27 Alberto Raposo – PUC-Rio Viewpoint (câmera) TypeaccessTypeNameDefaultRangeProfile SFVec3finputOutputcenterOfRotation0 0 0 (-, ) Interactive SFStringinputOutputdescription (null string)Immersive SFFloatinputOutputfieldOfView /4(0, ) Immersive SFBoolinputOutputjumptrueInteractive SFRotrationinputOutputorientation [-1 1] (-, ) Interactive SFVec3finputOutputposition0 0 0 (-, ) Interactive SFBoolinputOnlyset_bindInteractive SFBooloutputOnlyisBoundInteractive SFTimeoutputOnlybindTimeInteractive SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core centerOfRotation: ponto em torno do qual a câmera girará no EXAMINE

28 Alberto Raposo – PUC-Rio NavigationInfo

29 Alberto Raposo – PUC-Rio NavigationInfo type

30 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)

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

32 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

33 Alberto Raposo – PUC-Rio Apperance

34 Alberto Raposo – PUC-Rio Material Node

35 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

36 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

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

39 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 Cavalcanti

40 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 Cavalcanti

41 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 Cláudio Esperança e Paulo Roma Cavalcanti

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

43 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 Cavalcanti

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

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

46 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

47 Alberto Raposo – PUC-Rio ImageTexture node TypeaccessTypeNameDefaultRangeProfile MFStringinputOutputurl[ ][urn]Interchange SFBoolinitializeOnlyrepeatStrueInterchange SFBoolinitializeOnlyrepeatTtrueInterchange SFNodeinputOutputmetadataNULL[X3DMetadataObject]Core

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

49 Alberto Raposo – PUC-Rio MovieTexture Node

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

51 Alberto Raposo – PUC-Rio TextureTransform Node

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


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

Apresentações semelhantes


Anúncios Google