introdução prática ao x3d

23
Introdução Prática ao X3D Eduardo de Lucena Falcão

Upload: eduardo-de-lucena-falcao

Post on 18-Dec-2014

2.481 views

Category:

Technology


2 download

DESCRIPTION

Slides about the X3D technologies, to discuss different ideas on how to develop a 3D simulator for learning architecture of processors.

TRANSCRIPT

Page 1: Introdução prática ao X3D

Introdução Prática ao X3D

Eduardo de Lucena Falcão

Page 2: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Sumário

• WTF is X3D?• Browsers X3D• Exemplos de aplicações que utilizam o X3D• Meio de disponibilização• Nós e Campos X3D• Especificações• Exemplos práticos

Page 3: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

WTF is X3D?

• As perguntas mais frequentes:

AmbienteVirtual.x3d…<Scene>

…<Box/><Cylinder/><PointLight/>…

</Scene>

Browsers X3D

O X3D é uma linguagem de programação?É preciso compilar o

arquivo X3D?

É um programa?

É uma API?

Page 4: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

• Programas que interpretam o arquivo X3D para a renderização da cena

• Podem se apresentar como plugins, como aplicações independentes (desktop) e applets.

Browsers X3D

Page 5: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Exemplos de Aplicações – X3D

Page 6: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Browser como Applet

• http://dl.dropbox.com/u/5095342/Xj3DApplet/rc1/X3DForWebAuthorsExamples.html

Page 7: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Customização da Interface Gráfica

• Pode-se desenvolver uma interface gráfica que se adapte a aplicação e incorporar o visualizador (browser) Xj3D à mesma.– Swing

Page 8: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Exemplos Práticos

• Browser Xj3D instalado http://www.xj3d.org/snapshots.html)

• Opcionalmente: X3D Edit 3.2 (https://savage.nps.edu/X3D-Edit/X3D-Edit3.2.zip)

• Opcionalmente: Blender (http://www.blender.org/download/get-blender/)

Page 9: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Nós X3D

• Nós X3D são os elementos fundamentais que compõem a cena. Cada nó é formado por uma seqüência de campos.

• Alguns exemplos de nós são:– PointLight: nó de iluminação que descreve uma luz

pontual;– Box: nó de geometria que descreve um cubo;– NavigationInfo: nó de navegação que descreve os

meios e características de navegação.

Page 10: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Campos X3D

• Os campos servem para especificar os atributos dos nós X3D.

• Os campos que possuem ‘d’/‘D’ e ‘f’/‘F’ ao final do nome significam respectivamente a precisão double e float. Single e Multiple Field (SF e MF) significam, respectivamente, um ou vários valores do tipo especificado.

Tipos de campos.

Page 11: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

O Arquivo X3D

Page 12: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Hierarquia

• Cada arquivo é composto por um conjunto de elementos (nós) que possuem hierarquia

<Shape> <Cylinder/> <Appearance>

<Material diffuseColor='0 0.5 1'/> </Appearance></Shape>

Page 13: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Como saber quais campos e nós X3D existem?

• Nas especificações do X3D. (http://www.web3d.org/x3d/specifications/)

Page 14: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

• Exemplo 1: Conhecendo o arquivo X3D.– Criando uma cena com formas básicas.

• Exemplo 2: Adicionando alguma interatividade com eventos e rotas.

Exemplos Práticos

Page 15: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Exemplo Prático 2: Eventos e Rotas

• Permite animação dos AV através do mecanismo de Rotas fornecido pelo X3D

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

Page 16: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

ProximitySensor DEF=“Sensor”Campos: SFBool [out]: isActive = false Rota

PointLight DEF=“Lamp”Campos: SFBool [in,out]: on = false

ESTADO1

ESTADO2

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

Page 17: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Exemplo Prático 2: Eventos e Rotas

Page 18: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Exemplo Prático 2: Eventos e Rotas

Page 19: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Eventos com SAI

Page 20: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Script

• 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

Page 21: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Aplicação Externa

• Importante:• instalar as bibliotecas do Xj3D • colocar no classpath do projeto

Page 22: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Page 23: Introdução prática ao X3D

13/10/2010

Arquitetura de Computadores II

Discussões

• Debater as idéias!