visão geral do opensg psi-5787 realidade virtual alexander cerqueira silva richard ibarra hilton...
TRANSCRIPT
![Page 1: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/1.jpg)
Visão Geral do OpenSG
PSI-5787 Realidade VirtualAlexander Cerqueira SilvaRichard IbarraHilton Fernandes
11/11/2002
![Page 2: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/2.jpg)
Agenda
Introdução Conceito de grafo de cena Panorama dos grafos de cena Estrutura de dados do OpenSG “varreduras” Geometria Tratamento de estados Concorrência Conclusão
![Page 3: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/3.jpg)
Introdução
Objetivo do trabalho Saga até chegar ao final Visão geral do trabalho Fontes de informação
![Page 4: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/4.jpg)
Conceito de grafo de cena
Grafo como associação entre pares de elementos
Estrutura genérica que permite descrever cenas, entre outras coisas
Surge naturalmente: – VRML– X3D – …
![Page 5: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/5.jpg)
Panorama dos grafos de cena (1/10) Mudança de terminologia
– Framework que manipula grafos de cena
![Page 6: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/6.jpg)
Panorama dos grafos de cena (2/10) Exemplos
– OpenSG (www.opensg.org)– Open Inventor (oss.sgi.com/projects/inventor)– Open Scene Graph (www.openscenegraph.org)– Performer (www.sgi.com/products/performer)
![Page 7: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/7.jpg)
Panorama dos grafos de cena (3/10) Com exceção do Performer, todos outros são
Software Livre ou de código aberto/opensource;
Todos baseados no C++, menos o Performer, que usa principalmente C.
![Page 8: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/8.jpg)
Panorama dos grafos de cena (4/10) Integram-se com VR Juggler
– Performer– Open Scene Graph– OpenSG
Portanto, podem constituir parte de uma aplicação completa de Realidade Virtual.
![Page 9: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/9.jpg)
Panorama dos grafos de cena (5/10) Importante:
– Aplicativos de grafo de cena não pretendem ser solução completa de Realidade Virtual;
– Enfocam um ponto da criação de imagens em 3D;
– Não tratam de dispositivos, como trackers.
![Page 10: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/10.jpg)
Panorama dos grafos de cena (6/10) OpenGL tem gerenciamento de dados muito
limitado: – Coleção de funções de baixo nível para acesso
otimizado ao hardware gráfico;– Processamento principalmente funcional – modo
imediato.
![Page 11: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/11.jpg)
Panorama dos grafos de cena (7/10) Ferramentas de grafos de cena oferecem
gerenciamento organizado de dados que falta ao OpenGL.– OpenSG organiza dados de cena e suas visões,
![Page 12: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/12.jpg)
Panorama dos grafos de cena (8/10) OpenSG visa tratar de modelos de grandes
dimensões e CAD.
![Page 13: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/13.jpg)
Panorama dos grafos de cena (9/10) Outras metas de projeto do OpenSG:
– Multithreading e paralelismo: • processadores tendem ao SMT (Simultaneous
Multithreading);• aglomerados de computadores (clusters) pessoais
com poder crescente;
![Page 14: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/14.jpg)
Panorama dos grafos de cena (10/10) Outras metas de projeto do OpenSG (cont.):
– Extensibilidade: • Novos tipos de dados herdando de anteriores;• Uso ótimo, mesmo de hardware novo;• Simplificação do desenvolvimento de aplicações;
– Replicação e sincronização efetuados de modo elegante;
– Uso intenso de padrões de projeto de software (OOD patterns).
![Page 15: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/15.jpg)
Estrutura de dados (1/10)
Estrutura de Nó– O que é nó– Propriedades– Tipos de Nós
Aspectos– replicação
Reflexividade Padrões de projeto de software
![Page 16: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/16.jpg)
Estrutura de dados (2/10)
Estrutura de Nó– O que é nó:
Elemento básico do grafo de cena, usado para conter geometria e propriedades dos objetos de cena, e suas transformações e operações.
![Page 17: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/17.jpg)
Estrutura de dados (3/10)
Estrutura de Nó (cont.)– Propriedades:
• NodeCore: tipo de dados do nó– (agrupamento, representação de materiais…);
• Node: localização e associações: – Posição e volume;– Lista de nós subordinados a ele (filhos/children);– Apontador para nó ao qual este se subordina (pai/parent).
![Page 18: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/18.jpg)
Estrutura de dados (4/10)
Estrutura de Nó (cont.)– Posição no grafo
• Apenas nós filhos são representados.
![Page 19: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/19.jpg)
Estrutura de dados (5/10)
Estrutura de Nó (cont.)– Tipos de Nós – conteúdo/core:
• Geometria;• Texto e derivados
– Texto de bitmap;– Texto com textura;– Texto geométrico;
• Ambiente: nó global – um para todo grafo.
![Page 20: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/20.jpg)
Estrutura de dados (6/10)
Estrutura de Nó (cont.)– Tipos de Nós – conteúdo/core (cont.):
• Grupo e seus derivados:– Alternativa e chaveador/switch;– LOD, ou Level of Detail;– Luz e derivados – Transformações (rotação, translação, escala).
![Page 21: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/21.jpg)
Estrutura de dados (7/10)
Aspectos:– Cópias dos dados feitas localmente, a cada
thread, a cada processo paralelo.• Threads são linhas de execução subordinadas a
um processo principal e que compartilham com ele sua “memória” (espaço de endereçamento);
![Page 22: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/22.jpg)
Estrutura de dados (8/10)
Aspectos: (cont.)– Replicação é minimizada:
• Copy On Write: apenas dados a ser escritos são replicados – dados para leitura não;
![Page 23: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/23.jpg)
Estrutura de dados (9/10)
Aspectos: (cont.)– Sincronização é minimizada:
• Apenas dados de fato alterados são comunicados;– Listas de alterações, ou changelists;– Combinadas hierarquicamente, das folhas para raiz;
![Page 24: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/24.jpg)
Estrutura de dados (10/15)
Aspectos: (cont.)– Sincronização é minimizada (cont.):
• O que ocorre quando dois threads alteram os mesmos dados?
• Conflito é resolvido arbitrariamente, pelo último nó a informar a alteração.
![Page 25: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/25.jpg)
Estrutura de dados (11/15)
Aspectos: (cont.)– Baseiam-se em estrutura de ponteiros:
• Multicampo (Mfield) é estrutura que contém apontadores para seus dados,
• Dados são MFieldData -- registro de dados;• Aspectos usam apenas dados que vão alterar
– Isto otimiza uso do cache.
![Page 26: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/26.jpg)
Estrutura de dados (11/15)
Aspectos: (cont.)
![Page 27: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/27.jpg)
Estrutura de dados (12/15)
Reflexividade: – Capacidade de um objeto saber que dados ele
possui.– Nativa no Java;– Ausente no C++.– Teve de ser implementada pelo OpenSG.
![Page 28: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/28.jpg)
Estrutura de dados (13/15)
Reflexividade: (cont.)– Útil para ampliar flexibilidade e expansibilidade; – Facilita mecanismo de aspectos.
![Page 29: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/29.jpg)
Estrutura de dados (14/15)
Padrões de projeto de software -- Patterns: – Coletânea de soluções já testadas de
estruturas de classe e esboços de algoritmos;– Em tecnologia do objeto, são
• Considerados técnica em produção, não mais de pesquisa;
• Catálogo e uso tem aumentado;• Bastante usados em Java;
![Page 30: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/30.jpg)
Estrutura de dados (15/15)
Padrões de projeto de software -- Patterns (cont.):
– Usados para flexibilidade e encapsulamento: • ClassFactory para criar classes
parametrizadamente;• Prototypes para clonar objetos em tempo de
execução;• Decorator para fazer delegação dinâmica de
classes.
![Page 31: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/31.jpg)
Varreduras (1/9)
Definição Ações
– Renderização– Intersectar
Varreduras adaptadas– Varreduras complexas– Varreduras mais simples
![Page 32: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/32.jpg)
Varreduras (2/9)
Operação básica de um grafo de cena: Inicia no no raiz e segue ate nó procurado Busca em profundidade:
– Passa por todos nós filhos antes de iniciar nó irmão
Pode ser definida pelo sistema de grafos de cena ou por uma aplicação
![Page 33: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/33.jpg)
Varreduras (3/9)
Ações – São classes encapsulando diversas varreduras – Dependendo da espécie do nó, permite executar
diferentes operações em diferentes filhos Renderização Intersectar
![Page 34: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/34.jpg)
Varreduras (4/9)
Ações (cont.) Renderização:
– Renderização == reboque???• Tradução literal;• Transforma wireframe em superfície contínua;• Equivalente a reboque em prédios americanos
– Construídos com vigas
![Page 35: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/35.jpg)
Varreduras (5/9)
Ações (cont.) Renderização (cont.):
– Através do grafo, renderização é otimizada• Minimiza alterações do estado do baixo nível:
– Melhora uso do pipeline (linha de montagem) gráfica;
• Renderização é parte mais importante de sistema scenegraph,
– Onde maior esforço de trabalho é investido.
![Page 36: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/36.jpg)
Varreduras (7/9)
Ações (cont.) Intersectar
– Teste de geometria contra um raio;– Pode ser usado para testes simples de colisão– Simplificado pelos mecanismos de alto nível para
varredura do grafo
![Page 37: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/37.jpg)
Varreduras (8/9)
Ações (cont.) Intersectar (cont.)
– Potencial substituição de ray tracing;– Seria pouco eficiente, pois este usa algoritmos
especializados.
![Page 38: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/38.jpg)
Varreduras (9/9)
Varreduras adaptadas– Varreduras complexas
• Tornam vantajoso herdar de formas existentes de varredura
– Varreduras mais simples:• Uso de “hook”,
– Função do usuário chamada em certos eventos;– Em OpenSG, seu nome é traverse().
![Page 39: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/39.jpg)
Geometria (1/11)
É o mais importante tipo de nó do gráfico de cena
Engloba os dados que serão renderizados Vértices Primitivas Indexação Acesso
![Page 40: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/40.jpg)
Geometria (2/11)
Vértices– Propriedades dos Vértices
• Normal• Coordenadas de Cor• Coordenadas de Textura
![Page 41: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/41.jpg)
Geometria (3/11)
Vértices (cont.)– Vetores STL ou similares com tamanho dinâmico
• OpenSG usa diferentes tipos de dados através de atributo da estrutura chamado “Propriedades”
![Page 42: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/42.jpg)
Geometria (4/11)
Primitivas – Estruturas formadas pela conexão de vértices:
• Triângulos, quadrados, polígonos…– Primitivas misturadas usando propriedades dos
tipos.– Grande flexibilidade:
• combinação de primitivas homogêneas e heterogêneas.
![Page 43: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/43.jpg)
Geometria (5/11)
Indexação– Índice Único
– Índice Múltiplos• Indices Intercalados
![Page 44: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/44.jpg)
Geometria (6/11)
Indexação (cont.)Índice único
![Page 45: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/45.jpg)
Geometria (7/11)
Indexação (cont.)Índice múltiplo
![Page 46: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/46.jpg)
Geometria (8/11)
Acesso– Índice Único
– Índice Múltiplos• Indices Intercalados
![Page 47: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/47.jpg)
Geometria (9/11)
AcessoComo é tratamento dos nós que podem conter toda
variante de primitiva e tipo de dados
– Dois mecanismos:• Interface Genérica -- esconde diferenças de dados
![Page 48: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/48.jpg)
Geometria (10/11)
Acesso (cont.)– Dois mecanismos: (cont.)
• Iteradores:– Tipos:
Primitiva: PrimitiveIteratorFace: FaceIteratorTriângulo: TriangleIterator
![Page 49: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/49.jpg)
Geometria (11/11)
Acesso (cont.)– Dois mecanismos: (cont.)
• Iteradores: (cont.)– Atravessa estrutura como se fosse vetor linear;– Acesso direto a valores das primitivas
• Filtra elementos não pertencentes aos tipos
![Page 50: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/50.jpg)
Tratamento de estados (1/6)
Criação de grafo de cena Transformação Luzes Material
![Page 51: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/51.jpg)
Tratamento de estados (2/6)
Criação de grafo de cena– Por geometria– Por superfície, iluminação e atributos de
transformação
![Page 52: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/52.jpg)
Tratamento de estados (3/6)
TransformaçãoInfluencia todo nó sob ela, incluindo outras
transformações– Rotação– Translação– Escala
![Page 53: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/53.jpg)
Tratamento de estados (4/6)
Luz– Fonte de luz:– Define
• posição e • orientação da fonte de luz
– Beacon: nó que define posição e orientação da luz
![Page 54: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/54.jpg)
Tratamento de estados (5/6)
Material– Quase mapeamento de propriedades materiais
do OpenGL• Cores:
– Emissiva, ambiente, difusa e especular
• Brilho– Transparência não vem de OpenGL
![Page 55: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/55.jpg)
Tratamento de estados (6/6)
Material (cont.)– Classes:
•SimpleMaterial: – base
•SimpleTexturedMaterial: – Derivada– Inclui cópia de textura– Parâmetros de sua manipulação:
• Filtros de textura
![Page 56: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/56.jpg)
Concorrência (1/11)
Processamento concorrente e paralelo Tipos de concorrência Tipos de paralelismo Problemas dos threads Problemas dos aglomerados (clusters) Solução do OpenSG para threads Solução do OpenSG para aglomerados
![Page 57: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/57.jpg)
Concorrência (2/11)
Processamento concorrente e paralelo– Concorrência:
• Processamento independente de várias execuções, sem seqüência específica
• Oposto a seqüencial• Pode ser realizado em uma única CPU:
– Mesmo aquelas do tipo mais simples– Na verdade, é muito antigo
![Page 58: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/58.jpg)
Concorrência (3/11)
Processamento concorrente e paralelo (cont.)– Paralelismo:
• Processamento simultâneo• Subtipo de processamento concorrente
Tem história mais recente do que processamento concorrente.
• Multiplicação teórica do poder de processamento• Problemas de sincronização e comunicação
![Page 59: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/59.jpg)
Concorrência (4/11)
Tipos de concorrência– Múltiplas formas, que não vêm ao caso:
• Cooperativo, preemptivo etc.
– Através de processos: • Pilha e espaços de endereçamento e diferentes• Código compartilhado em alguns casos;
– Através de threads: • Espaços de endereçamento compartilhados;• Pilhas distintas;• Código sempre compartilhado.
![Page 60: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/60.jpg)
Concorrência (5/11)
Tipos de concorrência (cont.)– Threads e processos têm sido valorizados:
• Processadores SMT favorecem threads; • Máquinas SMP (Symmetric Multiprocessor)
favorecem processos;
![Page 61: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/61.jpg)
Concorrência (6/11)
Tipos de paralelismo:– Quanto a comunicação:
• Memória compartilhada;• Memória distribuída (passagem de mensagens)
![Page 62: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/62.jpg)
Concorrência (7/11)
– Modelos de cooperação:• Centralizado:
– Master/slave (mestre/escravo)– Cliente/servidor– Problema: Single point of failure;
• Descentralizado: – SPMD (Single Program/Multiple Data)– Mais tolerante a falhas
![Page 63: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/63.jpg)
Concorrência (8/11)
Problemas dos threads– Sincronização
• Controle do fluxo do aplicativo;• Controle do acesso a dados:
– Locks ou travas;
– Consistência de dados: • Threads errados ou maliciosos podem corromper
dados.
![Page 64: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/64.jpg)
Concorrência (9/11)
Problemas dos aglomerados (clusters)– Comunicação lenta através da rede;
• Relação entre comunicação e computação; – Problema de sincronização do aplicativo entre
máquinas;• Problema maior em aplicações gráficas com vários
monitores
![Page 65: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/65.jpg)
Concorrência (10/11)
Solução do OpenSG para threads– Replicação resolve uso de locks/travas;– Sincronização de dados controlada por grafo:
• Lista de alterações diz o que deve ser comunicado• Alterações conflituosas não são combinadas
![Page 66: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/66.jpg)
Concorrência (11/11)
Solução do OpenSG para aglomerados– Divisão de processos em clientes e servidores; – Servidores informam apenas clientes
registrados;– Estrutura de listas de alteração (changelists)
minimiza quantidade de dados a comunicar.
![Page 67: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/67.jpg)
Conclusão
Ferramentas de grafo de cena são úteis; OpenSG é implementação inteligente e
flexível;– Usa técnicas modernas de projeto e
programação Adaptada a threads e processamento em
cluster; Organiza dados 3D
– Facilita criação de aplicativo.
![Page 68: Visão Geral do OpenSG PSI-5787 Realidade Virtual Alexander Cerqueira Silva Richard Ibarra Hilton Fernandes 11/11/2002](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc110497959413d8c5732/html5/thumbnails/68.jpg)
Bibliografia
Open SG Forum http://www.opensg.org– OpenSG: Basic Concepts
OpenSG Forum Whitepaper– OpenSG – An Open Source Scenegraph– Fontes do OpenSG
VR Juggler http://www.vrjuggler.org– Scene Graph Rendering