Miguel Leitão, 2008. APIs para Gráfos de Cenas. SGI Performer OpenSceneGraph OpenSG OpenInventor OpenRM SUN Java3D X3D, VRML

Documentos relacionados
Representação de Cenas Tridimensionais: Grafo de Cenas

Computação Gráfica e Áreas Correlatas

Imagem digital. Unidade 3

Sistemas de Gerência de Bancos de Dados

Optimização de um Mundo Virtual

Conceitos e Enquadramento Histórico

Imagens - Formatos. GIF (Graphics Interchange Format) JPEG (ou JPG) (Joint Pictures Experts Graphis)

Transformações Geométricas Grafos de Cena

Java RMI. Alcides Calsavara

Computação Gráfica 3D Studio Max Prof.: Luiz Gonzaga Damasceno

Componentes de um Jogo Abertura, Encerramento Configuração de Dispositivos Trilha Sonora, Efeitos Sonoros Créditos, Scores, Recursos Multiplayer,...

Computação Gráfica. Daniela G. Trevisan.

Criação do Modelo 4 Cilindro (Cylinder) 4 Esfera (Sphere) 5 Superfícies (Quadpatch) 6 Bandeira 6 Chão 7 Texto (Text) 8 Materiais (Material) 10

HMI Caracteristicas e extensões utilizando FT View ME v6.1 e PanelView Plus 6

Realidade Virtual: Conceitos e Aplicações REALIDADE VIRTUAL

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company Manual

Sistemas Embarcados Android

Bruno Pereira Evangelista.

Transações no Mundo SOA. Luciano Oliveira Solution Consultant

Modelos Hierárquicos. Módulo 9. Sistemas Gráficos e Interação. Filipe Pacheco SGRAI 2017/18 DEI-ISEP 154. Instituto Superior de Engenharia do Porto

Projeções e Visualização

Bruno Pereira Evangelista.

Java 3D TM API. 1. Introdução. Profa. Isabel Harb Manssour. Introdução. Roteiro. Conceitos de Computação Gráfica

Wiki::Score A Collaborative Environment For Music Transcription And Publishing

Sistemas Embarcados Android

Paradigmas da Programação Netbeans UML

Encontro de Utilizadores Esri ArcGIS for Server 10.2 Administração Orador: João Ferreira Esri Portugal

Análise estrutural de um pórtico 2-D de concreto armado

Universidade da Beira Interior. Sistemas Distribuídos /2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

FUTEBOL UTEBOL ROBÓTICO

Demo Windows Vista OPK

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

1 - No painel Create, sub-painel Systems, Ative o botão Sunlight.

Select a single or a group of files in Windows File Explorer, right-click and select Panther Print

Computação Gráfica 3D Studio Max Prof.: Luiz Gonzaga Damasceno

Utilizadores de computadores que necessitem de usar, configurar e otimizar um sistema operativo.

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Introdução. Introdução. Introdução. A Realidade Virtual e Aumentada e suas aplicações na Televisão Digital. Sumário da Apresentação

Anatomy of the Process. Cultural Heritage Applications of Vision and Graphics. Process: Step by Step. Process: Step by Step. Process: Step by Step

Realidade Virtual: Aumentando ainda mais o realismo

Hipólito Douglas França Moreira

ESET Secure Authentication. Autenticação ultra-segura para proteger o acesso à rede empresarial

1. Introdução. 1.1 A Quem se Destina Este Livro. 1.2 Acerca do Software. 1.3 Como Usar Este Livro. 1.4 Estrutura do Livro

O que fazemos. Provemos tecnologia e suportamos o sucesso dos nossos clientes

Dicas. Simplificando o Método Top Down Design. Construindo uma Montagem com a Ferramenta Skeleton

Modelo Hierárquico & Transformações Geométricas

4 Implementação e Resultados

Scalable Vector Graphics. Kadu Neves Rafael Rocha

HANDS ON DARK GDK Outubro/2008 Prof. F.Osório / ICMC-USP - fosorio <at> gmail.com. DICAS DE INSTALAÇÃO DO DARK GDK / TheGameCreators (TGC)

Virtual Reality Tools OSG - Open Scene Graph ODE - Open Dynamics Engine

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Classificação de imagens Landsat

Introdução à Multimídia Fundamentos de Realidade Aumentada

Construindo uma aplicação Web completa utilizando ASP.Net 2.0, Visual Studio 2005 e IIS 7.0 ( Parte 1)

Computação Gráfica 3D Studio Max Prof.: Luiz Gonzaga Damasceno

SQL Structured Query Language. SQL Structured Query Language. SQL Structured Query Language. Composição do SQL. Composição do SQL.

TRINITY Project Microsoft Research Asia

Fundamentos de Computação Gráfica. Visualização e Navegação em Tempo Real

GBC043 Sistemas de Banco de Dados

WEB DESIGN ELEMENTOS GRÁFICOS

Manual de Operação do Oracle Designer Projeto PRINT

ESCOLA BÁSICA 2 / 3 DE MARTIM DE FREITAS Informática - Ano letivo de 2013 / 2014

JAVA 3D. PSI5789 Síntese de Imagens Professor: Márcio Lobo Netto Aluna: Alice Shimada Bacic. 1 Java 3D API

OpenGL 3.* INF Rendering em Tempo Real. Waldemar Celes Departamento de Informática, PUC-Rio

Computação Gráfica e Áreas Correlatas

Sistemas Operacionais

Material protegido pelas leis de direito autoral Proibida qualquer tipo de divulgação sem à devida autorização ou citada a fonte de forma correta.

2º Exame Computação Gráfica

X3DOM E WEBGL: O 3D INDEPENDENTE NA WEB

VWML: Linguagem e Ambiente de Modelagem de Mundos Virtuais

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainmoziware» company Manual Jose Lopes

Computação Gráfica. Renderização em Tempo Real. Erivaldo Xavier de Lima Filho

Simulação Distribuída em Ambientes Virtuais 3D e Mídias Interativas

Capítulo 5. Figura 5.2. Conector para o monitor.

Rendering 2D com OpenGL e interface gráfica em Qt

ArcMAP (parte 2) Rodar o ArcMap teclar: Iniciar > Todos os programas > ArcGIS > ArcMap. Sobre a janela selecionar o item An existing map:

Apontamentos de Computação Gráfica

Tecnologias de Jogos de Vídeo

1.ª CERTIFICAÇÃO DE HABILIDADE ESPECÍFICA DE 2010 Prova de Habilidades Específicas

Detecção de Colisão de Objetos em Ambientes Virtuais para Treinamento Médico Utilizando JOGL

Diversão com Software Livre

Computação Gráfica 3D Studio Max Prof.: Luiz Gonzaga Damasceno

Sumário. Gráficos 3D - Evolução Histórica. Computação Gráfica. ! Criação de Gráficos. ! Criação de Modelos 3D. ! Pipeline Gráfico. !

AULA_04 - Modelagem features básicas sólidos de revolução (protusões e cortes)

Curso de Adobe Illustrator CS2

Desenho e Apresentação de Imagens por Computador

15º Congresso Brasileiro de Geologia de Engenharia e Ambiental. Sensoriamento Terrestre Aplicado a Realização de Scanlines

modelos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

WEB DESIGN ELEMENTOS GRÁFICOS

Manual de utilização MAWI

Escrito por Dom, 16 de Outubro de :13 - Última atualização Seg, 26 de Março de :25

Plugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4

YouTube. e a CampusTV. Fernando Birra, 2014

Percursos e Conectividade em Grafos Depth-First Search. DFS: Depth-First Search (pesquisa em profundidade)

ArcGIS para Developers

VRML Virtual Reality Modeling Language

Enplicaw Documentation

QUEM FEZ O TRABALHO?

CMDB no ITIL v3. Miguel Mira da Silva

Utilização do QuantumGIS (QGIS)

Transcrição:

Miguel Leitão, 2008 APIs para Gráfos de Cenas SGI Performer OpenSceneGraph OpenSG OpenInventor OpenRM SUN Java3D X3D, VRML 1

SceneGraph Gráfo definido pela associação entre pares de elementos. Estrutura genérica que permite descrever cenas. Representa a hierarquia da cena. Árvore de Objectos root group3 t0 t5 t6 group1 obj3 obj4 t1 t2 obj1 group3 group2 object nodes (geometry) transformation nodes t3 t4 group nodes obj2 group3 SceneGraph tricycle T T Seat Front Group Back wheels T Handle bars Left wheel Right wheel Front Wheel 2

SceneGraphs Datastructure: Directed Acyclic Graph (DAG) Usually a tree (only one parent per node) Represents object-based hierarchy of geometry Leaves contains geometry (triangles, etc.) Each node holds pointers to children Children can be Group Geometry Matrix transform Others SceneGraph: Exemplo Sala Mesa Sofá Cadeira 1 Cadeira 2 Cadeira 3 Armário Perna 1 Perna 2 Perna 3 Perna 4 Tampo Cadeira Perna 3

Bounding Volumes Os gráficos de cena podem manter uma definição de um volume envolvente em cada nó. Um volume envolvente oferece uma especificação simples do espaço onde se localizam todos os descendentes do nó. Os volumes envolventes podem ser: Esferas (Bounding Spheres) Caixas alinhadas com os eixos (Axis Aligned Bounding Boxes) SG + BV = Bounding Volume Hierarchy (BVH) Bonding Volumes circles=bvs scene graph root 4

OpenSceneGraph Uma iniciativa Open Source para criar uma API de Gráfo de Cena. Baseado no OpenGL/Performer A maioria das classes de nós são coincidentes. A migração Performer->OSG é fácil. OpenSceneGraph API C++ Desenvolvido sobre OpenGL Cross-platform Windowing system agnostic Open Source Implementa: Importação de Objectos Gestão de Gráfo de Cena Rendering optimizado www.openscenegraph.org 5

OSG Features All standard nodes: DCS, GeoSet, LOD etc. Culling: Viewfrustrum culling Tree traversals Support for Win32, Linux and Irix. Native fileformat.osg Loads among others.flt and.pfb files OSG Users Magic Earth - Geoprobe - Oil & Gas Boeing - Flight simulation Indra - Train simulation STN Atlas - Simulation NASA - Earth visualization Norcontrol - Maritime simulation Real World Entertainment - Gaming Terrex - LOD Paging POSTECH - 6

OSG: Functional Components OSGUtil Traversers Enhancements OSG Scene Graph Rendering Elements OSGDB Data Base Loading Plug-in Management Plug-Ins OSGText OSGSim Node Kits File Formats Supported 3D File Formats 3dc 3ds ac3 dw flt Freetype iv ive logo lwo md2 obj osg osg tgz tgz txp directx zip Image Formats: bmp dds pic png pnm qt rgb tga 7

Open Scene Graph - Support Mailing list Web site support On-line reference guides Examples Contributions OpenGL Performer Documentation Processing phases Update Cull Draw 8

Multi-buffered Data Protection Update Cull Draw Buff 0 Buff 1 Buff 2 Phase n Phase n-1 Phase n-2 osg::node osg::node Classe base de todos os nós (Nodes) do gráfico de cena. 9

Osg::Group osg::group Node que mantém uma lista de desceneentes. osg::transform osg::transform Um grupo que matém uma matriz de transformação 4x4. A transformação é herdada por todos os nós descendentes. 10

Geometry Nodes osg::geode Um nó que contém geometria. Corresponde sempre a uma folha da árvore de objectos (não tem filhos). Os objectos visíveis são definidos em Geodes Exemplo 1 Modelo Geométrico posicionado na cena root (osg::group) tankxform (osg::positionattitudetransform) tanknode (osg::node) 11

Exemplo 2 root (osg::group) tankonegroup (osg::group) tanktwopat (osg::positionattitudetransform) tankthreepat (osg::positionattitudetransform) tanktwogroup (osg::group) tankthreegroup (osg::group) Criar geometria // Create a vector to represent the "center of the cone" Vec3 vcen(xcen, ycen, zcen); // Create a cone geometry Cone* cone = new Cone(vcen, radius, height); // Create a drawable object based on the cone ShapeDrawable *obj = new ShapeDrawable(cone); obj>setcolor(vec4(color[0], color[1], color[2], color[3])); // Create a scene graph node for obj Geode* geode = new Geode(); geode->adddrawable(obj); 12

Combinar geometria MatrixTransform* arrow = new MatrixTransform; arrow->setmatrix(matrix::scale(1.0, 1.0, 1.0)); arrow->addchild(cone); arrow->addchild(cylinder); root->addchild(arrow); Robot0 SceneRoot // Creating the root node osg::group* SceneRoot = new osg::group; loadedmodel // Load arm model osg::node* loadedmodel = osgdb::readnodefile("cube.obj"); SceneRoot->addChild( loadedmodel ); 13

Robot1 // Creating the root node osg::group* SceneRoot = new osg::group; // Load arm model osg::node* loadedmodel = osgdb::readnodefile("cube.obj"); // bracoseg osg::matrixtransform* bracoseg = new osg::matrixtransform; mymatrix.makescale( 1., 1., 5. ); mymatrix.settrans( 0., 0., 5. ); bracoseg->setmatrix( mymatrix ); bracoseg->addchild( loadedmodel ); SceneRoot bracoseg loadedmodel SceneRoot->addChild( bracoseg ); Robot2 // Load arm model // bracoseg // braco0 osg::matrixtransform* braco0 = new osg::matrixtransform; braco0->setmatrix( osg::matrix::identity() ); braco0->addchild( bracoseg ); SceneRoot braco0 bracoseg SceneRoot->addChild( braco0 ); while(!viewer.done() ) { braco0->postmult( osg::matrix::rotate(0.0002, 0., 0., 1.) ); loadedmodel 14

Robot3 // braco0 // braco1 osg::matrixtransform* braco1 = new osg::matrixtransform; braco1->setmatrix( osg::matrix::identity() ); braco1->addchild( bracoseg ); SceneRoot braco0 pos = new osg::matrixtransform; pos->setmatrix( osg::matrix::translate(0., 0., 10.) ); pos->addchild( braco1 ); braco0->addchild( pos ); Pos1 braco1 while(!viewer.done() ) { braco1->postmult( osg::matrix::rotate(0.0005, 0., 1., 0.) ); bracoseg loadedmodel Robot4 // braco1 // braco2 osg::matrixtransform* braco2 = new osg::matrixtransform; braco2->setmatrix( osg::matrix::identity() ); braco2->addchild( bracoseg ); Pos1 SceneRoot braco0 pos = new osg::matrixtransform; pos->setmatrix( osg::matrix::translate(0., 0., 10.) ); pos->addchild( braco2 ); braco1->addchild( pos ); Pos2 braco1 while(!viewer.done() ) { braco2->postmult( osg::matrix::rotate(0.001, 1., 0., 0.) ); braco2 bracoseg loadedmodel 15