1. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Descrevendo cenas em X3DDescrevendo cenas em X3D
para Integração de Aplicaçõespara Integração de Aplicações
e Suporte Multiplataformae Suporte Multiplataforma
Eduardo L. Falcão
Liliane S. Machado
Thaíse K. L. Costa Universidade
Federal da
Paraíba
XII Symposium on Virtual and Augmented Reality
2. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Parte I –
• Conceitos, embasamento teórico,
introdução aos nós X3D
Parte II –
• Introdução de interatividade aos AVs,
tópicos específicos em X3D
Descrevendo cenas em X3DDescrevendo cenas em X3D
para Integração de Aplicaçõespara Integração de Aplicações
e Suporte Multiplataformae Suporte Multiplataforma
3. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Surgimento de AVs 3D naSurgimento de AVs 3D na
WebWeb
• Nascimento do VRML
• Virtual Reality Modeling Language (1994)
• VRML 1.0 – criação de mundos estáticos
• VRML 97 (VRML 2.0) – criação de mundos
dinâmicos
• Surgimento do X3D
• Evolução do VRML 2.0
• Principais avanços: introdução do XML,
reestruturação da especificação, …
VAG
4. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
X3D – eXtensible 3DX3D – eXtensible 3D
• As perguntas mais frequentes:
AmbienteVirtual.x3d
…
<Scene>
…
<Box/>
<Cylinder/>
<PointLight/>
…
</Scene>
Browsers X3D
O X3D é umalinguagem deprogramação?
É preciso
compilar o
arquivo X3D?
É um
programa?
É uma API?
5. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Aplicações DesenvolvidasAplicações Desenvolvidas
com o X3Dcom o X3D
http://www.de.ufpb.br/~labteve/portugues/projetos/campus.html http://www.web3d.org/x3d/content/examples/Basic/Medical/Me
dicalMetadataViewer.x3d
6. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Aplicações DesenvolvidasAplicações Desenvolvidas
com o X3Dcom o X3D
http://x3dgraphics.com/examples/X3dForWebAuthors/KelpFores
tExhibit/KelpForestMain.x3d http://www.latec.ufrj.br/dinosvirtuais/catalogo/exposicaofull.html
7. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Aplicações DesenvolvidasAplicações Desenvolvidas
com o X3Dcom o X3D
http://x3d-earth.nps.edu/*
8. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
EspecificaçõesEspecificações
• O que são as especificações?
• Processo de modificação
9. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
EspecificaçõesEspecificações
10. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
EspecificaçõesEspecificações
11. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
EspecificaçõesEspecificações
12. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
EspecificaçõesEspecificações
13. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
EspecificaçõesEspecificações
14. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Grafo de CenaGrafo de Cena
• Grafo de Cena: contém todas as
informações (nós e campos) do AV,
estruturadas de maneira hierárquica.
• Importante:
• Boa localização espacial do grafo de cena
• Alta segmentação dos sub-objetos do AV
Facilitam a construção do AV e a otimização da
renderização.
15. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Nós Intermediários
Nós Folhas
Térreo 1º andar
Recepçã
o
Corredor
(Dir.)
Corredor
(Esq.)
2º andar
Aptos.01 -
25
Aptos.26 - 50
Corredor (Dir.) -
1
Corredor (Esq.) -
1
Corredor (Dir.) -
1
Corredor (Esq.) -
1
Aptos.101-
125
Aptos.126 -
150
Aptos.201 -
225
Aptos.226 -
250
Cadeira
1
TV
1
…
Cama
26
Cadeira 26
TV
26
…
Cama
101
Cadeira
101
TV
101
…
Cama
126
Cadeira
126
TV
126
…
…
…
Cama
1
Nó Raiz
Hotel
16. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Cada arquivo é composto por um conjunto de
elementos (nós) que possuem hierarquia
HierarquiaHierarquia
<Shape>
<Cylinder/>
<Appearance>
<Material
diffuseColor='0 0.5 1'/>
</Appearance>
</Shape>
17. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• Programas que interpretam o arquivo X3D
para a renderização do AV
• Podem se apresentar como plugins, como
aplicações independentes e applets e para
celular.
Browsers X3DBrowsers X3D
18. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
19. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• Octaga plugin, aplicaçao local
• Xj3D Java WebStart, Applet, Jar,
aplicação local
• Instant Player aplicação local
• BS Contact plugin, aparelhos móveis,
aplicação local
• Cortona plugin, aplicação local,
apresentaçoes de PowerPoint, celular
• Outros: H3DViewer, FreeWRL, OpenVRML,
SwirlX3D, Vivaty
Browsers X3DBrowsers X3D
20. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
XMLXML
• eXtensibilidade
• Arquitetura:
• extensível e modular, permitindo vários níveis
de suporte às funcionalidades X3D
• Facilitam a construção dos browsers e
downloads mais rápidos dos browsers
• especificações segmentadas em vários níveis
• Definição de perfis e componentes no
cabeçalho
21. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
XMLXML
• Testes de validação
• Facilita a construção de AVs
• Colaborativos
• Ex.: AVs que adicionam objetos 3D em
tempo-real
22. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Formatos de CodificaçãoFormatos de Codificação
• .wrl
• .x3dv
• .x3d
• .x3db: 50% de redução
23. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• Construção de AVs X3D para fixação dos
novos conceitos
• Ferramentas utilizadas:
• Blender
• X3D Edit
Exemplos PráticosExemplos Práticos
24. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
BlenderBlender
• Free e Open Source
• Exportador X3D
• Modelagem
• Facilita a construção de modelos
complexos
• Agiliza a contrução de qualquer AV
25. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
X3D EditX3D Edit
26. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• DEF/USE
• Vantagens:
• Economizar espaço em memória
• Diminuir tamanho do arquivo X3D
• Maior eficiência na renderização
• “USE” aponta para o mesmo espaço de
memória do “DEF”
Exemplo Prático 1: DEF/USEExemplo Prático 1: DEF/USE
27. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Exemplo Prático 2: EventosExemplo Prático 2: Eventos
e Rotase Rotas
• Permite animação dos AV através do
mecanismo de Rotas fornecido pelo X3D
• Não é necessário script
• Ex.: ProximitySensor
• inputOnly: permite apenas receber (valores) eventos;
• outputOnly: permite apenas enviar (valores) eventos;
• inputOutput: permite receber e enviar (valores) eventos;
• initializeOnly: tal campo não pode receber nem enviar (valores)
eventos, o valor deste campo pode apenas ser inicializado.
28. ProximitySensor
DEF=“Sensor”
Campos:
SFBool [out]: isActive = false Rota
PointLight DEF=“Lamp”
Campos:
SFBool [in,out]: on = false
E
S
T
A
D
O
1
E
S
T
A
D
O
2
ProximitySensor
DEF=“Sensor”
Campos:
SFBool [out]: isActive = true
PointLight DEF=“Lamp”
Campos:
SFBool [in,out]: on = true
TRUE
Sensor capta a presença do
usuário e lança um evento.
Alarme é
acionado.
Rota
29. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Exemplo Prático 2: Eventos e RotasExemplo Prático 2: Eventos e Rotas
30. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Exemplo Prático 2: EventosExemplo Prático 2: Eventos
e Rotase Rotas
31. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Eventos com SAIEventos com SAI
32. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
ScriptScript
• Possibilita fazer processamento em X3D que
envolva decisão lógica e gerência de estado
• É ativado pelo recebimento de um evento
• O evento ativa o campo URL
33. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Aplicação ExternaAplicação Externa
• Importante:
• instalar as bibliotecas do Xj3D
• colocar no classpath do projeto
34. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Aplicação ExternaAplicação Externa
ScriptJava.classScriptJava.class
35. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
36. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Tópicos Específicos em X3DTópicos Específicos em X3D
37. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Expansão deExpansão de
FuncionalidadesFuncionalidades
• Protótipos
• customizar novos nós a partir de outros nós X3D
e/ou outros protótipos
• Desenvolvedor pode
• construir, declarar e instanciar nós que melhor se
adequem a necessidade do seu ambiente
38. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Expansão deExpansão de
FuncionalidadesFuncionalidades
Declarar -> Instanciar
39. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Expansão deExpansão de
FuncionalidadesFuncionalidades
40. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• O que é
estereoscopia?
• Métodos de
visualização
EstereoscopiaEstereoscopia Paralaxe Negativa
Paralaxe
Zero(ZPS)
Paralaxe Positiva
[Raposo, Szenberg, Gattas e Celes 2004]
41. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• Alguns browsers dão suporte a
estereoscopia:
• Bs Contact Stereo (plugin no navegador)
• Instant Player (suporta acesso da cena através de
Java)
• Pode-se gerar AVs estereoscópicos de
qualquer arquivo X3D
AVs estereoscópicosAVs estereoscópicos
42. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• Instant Player
AVs estereoscópicosAVs estereoscópicos
http://www.instantreality.org/tutorial/passive-stereo/
43. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
• BS Contact Stereo
• Ajuste da estereoscopia por menu, em tempo real
AVs estereoscópicosAVs estereoscópicos
44. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
AVs em dispositivos móveisAVs em dispositivos móveis
> BS Contact Mobile
> InstantMini
> X3DMini
> X3Dl
45. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
>Flexibilidade (tempo e localização)
Capacidade de gerenciar ou modificar
configurações de dispositivos sem a necessidade
da presença física;
>Colaboração
Comuncação entre usuários e com o mesmo
objetivo.
Conexão entre Virtual<->RealConexão entre Virtual<->Real
e Colaboraçãoe Colaboração
46. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
>Banco de Dados
> Armazenamento de informações sobre os dispositivos;
>Sistema Embarcado
> Comunicação do ambiente real com o virtual.
Conexão entre Virtual<->RealConexão entre Virtual<->Real
e Colaboraçãoe Colaboração
47. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Conexão entre Virtual<->RealConexão entre Virtual<->Real
e Colaboraçãoe Colaboração
48. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Serviço/
Informação
• Ambientes Virtuais como suporte a
diversos tipos de informações
ConsideraçõesConsiderações
49. Natal, 24 a 27 de maio de 2010XII Symposium on Virtual and Augmented Reality
Divirtam-se com X3D!Divirtam-se com X3D!
Obrigado!Obrigado!
eduardolfalcao@gmail.com
liliane@di.ufpb.br
thaise@ccae.ufpb.br
Hinweis der Redaktion
Colocar o que será abordado (tentar motivar mostrando que após a parte introdutória do X3D haverá a apresentação de conceitos mais avançados.)
Eduardo Naquela época (década de 90), a internet já surgia como grande novidade. E inicialmente expandiu os horizontes de comerciantes e grande empresas, que se utilizavam da Web2D e seu poder de ligação hipertextual (ou seja, os sites) para divulgação e comercialização de seus produtos. A internet começou a evoluir, de modo que era preciso acontecer uma grande revolução: o surgimento da Web3D (Web-Tridimensional). A proposta da Web3D era possibilitar aos internautas, explorarem gráficos tridimensionais através da Web. Com isso, em 1994 nasce o VRML (ou VRML 1.0), primeira forma de divulgar gráficos 3D na Web. VRML é uma linguagem de criação e modelagem de mundos virtuais, e foi criado por grupos de pesquisadores e estudiosos que interessavam-se no assunto. Este foi um passo bem sucedido, já que eram permitidos ao usuário alguma forma de interaçao com os objetos 3d: navegar, observar de diferentes perspectivas, entre outras... Porém, os usuários não ficaram satisfeitos por muito tempo, os consumidores queriam mais, um maior grau de interatividade. Em 1997, surgiu o VRML97 ou VRML 2.0. Sua proposta era adicionar novas funcionalidades (nós) que permitissem a criação de mundos virtuais dinâmicos. O VRML 2.0 foi bem aceito pela comunidade na época, já qua disponibilização de AVs 3D na internet, com interatividade e dinamismo. Após certo tempo (2001), a comunidade sentiu que o padrão para gráfico 3D na web precisava de uma reformulação para definir uma arquitetura robusta, ter suas funcionalidades expandidas mais facilmente, facilitar e disseminar o uso de AVs 3D, assim como facilitar a integração do X3D com tecnologias atuais (emergentes). Além destas, existem outras inúmeras vantagens e avancos em relacao ao VRML, que daria muito tempo falando só sobre isso…
Eduardo Perguntas: Alguém aqui não conhece o X3D? (veio porque queria conhecer/aprender, mas ainda não conhece) Se sim, o que é que ele acha que é o X3D? Quem aqui já conhece o X3D? (só a título de curiosidade) Quem já construiu algum AV X3D? Perg. Frequentes de iniciantes: Ling. De Programacao? NAO! Compilar arquivo? NAO! É um programa? NÃO! É uma API? NÃO! Então, o que é o X3D? É uma linguagem de modelagem e descrição de ambientes virtuais 3D interativos para a WEB. É a linguagem padrão criada pela Web3D Consórcio. É um padrão aberto onde há uma grande comunidade que contribui para o desenvolvimento do mesmo,em constante discussão e troca de idéias. Na prática: É um arquivo (.x3d, x3dv, .x3db), que contém textos (segundo a especificação do X3D), que ao serem interpretados pelos browsers, geram o ambiente virtual 3D.
Eduardo http://www.web3d.org/x3d/content/examples/Basic/Medical/MedicalMetadataViewer.x3d http://www.de.ufpb.br/~labteve/portugues/projetos/campus.html São várias as finalidades dos Avs 3D do X3D. Agora vou mostrar alguns exemplos, falando de algumas potencialidades, e mostrando a capacidade que o X3D nos oferece. À esquerda, temos uma parte do Campus da UFPB modelado. Foi um trabalho de mestrado da outra palestrante (Thaíse), que se utilizou de algumas funcionalidades de um browser (Xj3D, browser aberto, será abordado mais a frente), para a customização de um browser, para um projeto que facilite a integração de Avs em um programa, que tem várias funcionalidades pré-programadas, incluindo a própria interface gráfica. Como objetivo principal, além de auxiliar novos estudantes da UFPB a poder conhecer previamente sua universidade, possui uma série de serviços agregados ao mesmo, como links para uma calculadora estatística, link para o site da universidade, para o site do laboratório, dentre outros serviços. À direita nós temos um exemplo que se econtra no site da Web3D. Este exemplo serve para mostrar a utilização do X3D em aplicações de objetivos voltados para a área de saúde. O site da Web3D é muito importante, pois apesar de vários exemplos que tem para auxiliar os iniciantes a entenderem melhor como funciona determinadas funcionalidades, possui toda a especificação (será abordado mais a frente) do X3D. X3D and Medical Imaging
Eduardo Kelp Forest Um dos grandes idealizadores do X3D (Don Brutzman), é professor na área de computação gráfica e realidade virtual na NPS (Naval PostGraduate School). Ele juntou 2 turmas, uma de cientistas da computação que sabiam modelar, e a outra turma era um pessoal que estudava aplicação de cálculos matemáticos, para uma modelagem “física”, na qual por exemplo os movimentos das plantas fossem mais reais. Pode-se observar que o AV3D é bastante realista aproximando-se do ambiente real. O código da aplicação é aberto, e serve como uma boa fonte de exemplos, para desenvolvedores que precisam entender melhor como funcionam certos nós. Projeto chamado “Dinos Virtuais” desenvolvido pela UFRJ em parceria com outras Universidades. O ambiente virtual 3D, retrata o Museu Nacional do Rio de Janeiro que possui um riquíssimo acervo de história natural, especialmente Paleontologia, com o objetivo de uma vasta disseminação para aqueles que não puderem visitar o museu (como eu), conheça as peças, exposições, e sobre as recentes descobertas científicas do Museu Nacional sobre dinossauros brasileiros, que lá se encontram. Estimular o interesse do público em geral e, especialmente, o infanto-juvenil pela Arqueologia e a Paleontologia e pela Realidade Virtual, possibilitando a visualização tridimensional estereoscópica interativa, do acervo em exposição do Museu Nacional; Sensibilizar diferentes setores da sociedade e, em particular os jovens para a importância da pesquisa em Arqueologia, em Paleontologia e em Realidade Virtual, estimulando o surgimento de futuros pesquisadores nessas áreas.
Eduardo Sala de Física. (Se eu num souber falar, peraí né…) X3D-Earth Obviamente, tem como objetivo a representação do planeta terra em 3D. Mas qual a diferença entre o X3D e o GoogleEarth, Virtual Earth? A grnade diferença é que X3D Earth não tem fins comerciais. As aplicações do X3D Earth são desenvolvidas com software livre e voltadas para o interesse público. Elas poderão ser usadas por toda a sociedade e setores públicos, como prefeituras, companhias de água, luz e esgoto, entre outros, em áreas como previsão do tempo, preservação de florestas, aquecimento global, etc. Outro diferencial do X3D Earth é que todo o processo de atualização de imagens seria feito pelos participantes da comunidade. O projeto X3D Earth é patrocinado pela Naval PostGraduate School, de Monterey (Califórnia, EUA) e tem a participação de diversas universidades americanas, européias e brasileiras. Na América Latina, o Laboratório de Sistemas Integráveis (LSI) (Escola Politécnica da USP) é o principal condutor das pesquisas de concepção e desenvolvimento dessa ferramenta. Componente GeoSpatial. Componente com nós cujas funções são (generalizando) a de localizar e associar locais do mundo real, com mundos virtuais X3D. Componente Humanoid Animation. NURBS DIS Rigid Body Physics Component …
Thaíse Conjunto de documentos técnicos que definem a geometria e as capacidades de comportamento clássico utilizando o conjunto de tags xml. Nós e campos na terminologia X3D equivale a elementos e atributos na terminologia XML. Cada um destes documentos de especificação foi desenvolvida através de um processo aberto e colaborativo por membros do grupo de trabalho voluntário em organização sem fins lucrativos Web3D Consórcio
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
Thaise
eduardo
eduardo
eduardo
Eduardo
eduardo
eduardo
eduardo
eduardo
Thaise
Thaise
Thaise
Thaise
Thaise
Colocar o que será abordado (tentar motivar mostrando que após a parte introdutória do X3D haverá a apresentação de conceitos mais avançados.)
Thaise
Thaise
Thaise
Eduardo Estereoscopia é o método pelo qual torna-se possível a visualização tridimensional de qualquer imagem. Para tal, é preciso gerar duas imagens idênticas com certa distância horizontal (paralaxe), e visualizá-las ao mesmo tempo [Raposo, Szenberg, Gattas e Celes 2004]. O valor da paralaxe é o campo que afeta a intensidade da estereoscopia. Existem três tipos de paralaxe: a paralaxe zero, conhecida por ZPS, a paralaxe negativa, e a paralaxe positiva . Para obter as duas imagens exibidas simultaneamente podem ser utilizados dois métodos de estereoscopia: a passiva e a ativa. Na passiva, as duas imagens são exibidas simultaneamente, e são utilizados óculos com filtros para cada olho visualizar apenas uma imagem. Exemplos são o uso de óculos anaglifos (filtros vermelho e azul), ou óculos polarizadores de luz. Na ativa, as imagens referente ao olho esquerdo e direito são mostradas intercaladamente a uma freqüência de pelo menos 120Hz, com auxílio do shutter glasses, que são óculos feitos de cristal líquido e tem a capacidade de bloquear e desbloquear rapidamente a visão de um olho do usuário. A estereoscopia passiva é a mais barata podendo ser facilmente acessada e visualizada por qualquer um que tenha internet, e disposição para confeccionar seu óculos. Os óculos podem ser confeccionados artesanalmente e com apenas três reais é possível produzir manualmente cerca de 50 óculos.
Eduardo
Eduardo Exemplos (mostrar na hora): AVs exemplo (azul-vermelho) AVs exemplo (colorido) Sala de Física (colorido)
Eduardo Vantagens do BSContact: estereoscopia adicionada (facilmente) por menu, atraves do mouse ajuste de intensidade em tempo real, assim como inversão da paralaxe… Exemplos:Sala de Física (colorido)
Eduardo 2010 Call for Participation for Mobile X3D Study Group at SC24 Plenary Meeting An X3D player running on the iPhone and Windows CE. Some minor limitations for the device setups and you have be carefull about your content but works with all standard X3D scenes.
Thaíse: exemplo da SAI e prototótipo Eduardo: estereo e móvel Thaíse: real, colaboração e fechamento