Alessandro Hoss
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Conteúdo
•
•
•
•
Configurações Necessárias
Componentes X3D
Tipos de Sensores
Métodos para acessar a cena
– Como tratar eventos
– Como enviar eventos
• Adicionando ROUTEs
• TimerSensor + Interpolators
• Proto + ExternProto
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Configurações Necessárias
• Java 6
• Xj3D 2.0
• Copiar as dll’s da pasta “bin” do Xj3D para a pasta
“jdk..\jre\bin”:
–
–
–
–
odejava.dll
jinput-dx8.dll
jogl.dll
gluegen-rt.dll
• Adicionar TODOS os arquivos “*.jar” do Browser
Xj3D (..\Xj3D\jars) ao projeto.
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Carregar o Xj3D em Java
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Parâmetros do Browser
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Exercício
• Carregar uma cena qualquer utilizando o
Browser Xj3d, a partir do Java.
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Objetos X3D
• A descrição X3D possui 2 tipos primitivos de
objetos: Nós e Campos (Nodes & Fields)
• Todos os objetos precisam ter um nome e
uma implementação
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
X3DNodes (nós)
• São compostos por um ou mais campos que
podem enviar e/ou receber eventos;
• Nós podem ser campos de outros nós;
• Cada nó pode ter zero ou mais campos e zero
ou mais eventos associados à ele;
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
X3DFields (campos)
• Definem o estado dos nós na cena;
• Podem conter um único valor ou uma lista de
valores de um determinado tipo;
• Podem ser acessados de 4 maneiras
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Formas de acesso aos campos
• initializeOnly: permite que um valor seja atribuído
ao campo, porém este não pode ser alterado após a
cena ser carregada;
• inputOnly: permite que um evento seja recebido para
alterar o valor de um campo;
• outputOnly: permite mostrar o valor em um
determinado campo;
• inputOutput: acesso completo ao campo
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tipos de campos
• SFBool / MFBool: true / false
• SFColor / MFColor: Composto por uma “3upla” de valores float no sistema RGB. Tem
por default a cor preta (0 0 0);
• SFColorRGBA / MFColorRGBA: RGB com
canal Alpha para suportar transparencia.
Valores de 0.0 a 1.0 (0 0 0 0);
• SFDouble / MFDouble: Suporta 14 dígitos de
precisão decimal com expoentes de -12 a +12;
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tipos de campos
• SFFloat / MFFloat: até 6 dígitos de precisão
decimal;
• SFImage / MFImage: Imagem 2D sem
compressão. Composto por largura, altura e
número de componentes da imagem (0 0 0);
• SFInt32 / MFInt32: Inteiro de 32 bits (+ / -)
• SFNode / MFNode: nó X3D, tem por default
NULL;
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tipos de campos
• SFRotation / MFRotation: 4-upla (x y z a)
tx2+c txy+sz txz-sy
txy-sz ty2+c tyz+sx
txz+sy tyz-sx
tz2+c
Onde: c=cos(a), s = sen(a), e t = 1–c (a em rad)
• SFString / MFString: Strings codificadas em UTF-8
• SFTime / MFTime: Double indicando o número de
segundos desde 00:00h de 1 de janeiro de 1970
(Meridiano de Greenwich);
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tipos de campos
• SFVec2d / MFVec2d: Vetor bidimensional
composto por double’s;
• SFVec2f / MFVec2f: Vetor bidimensional
composto por float’s;
• SFVec3d / MFVec3d: Vetor tridimensional
composto por 3 double’s;
• SFVec3f / MFVec3f: Vetor tridimensional
composto por 3 float’s;
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tipos de Sensores
•
•
•
•
•
•
TouchSensor
PlaneSensor
CylinderSensor
SphereSensor
TimeSensor
StringSensor
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tipos de Sensores
•
•
•
•
•
•
CollisionSensor
VisibilitySensor
ProximitySensor
KeySensor
LoadSensor
GeoTouchSensor
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Métodos para acessar a cena
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Métodos para acessar a cena
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Tratamento de eventos da cena
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Exercícios
• Mudar a cor de um cilindro quando o mouse
passar sobre ele .
– Dica: Nomear (DEF) o campo “Material” do
cilindro e utilizar o método setValue;
• Fazer o mesmo utilizando botões em outra
janela;
• Abrir uma Janela quando o usuário clicar no
cilindro;
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
ROUTE
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Exercício
• Realizar movimentos esféricos em um
cilindro, a partir de uma caixa (Box).
• Girar um objeto através de um botão.
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
TimeSensor + Interpolator
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Proto
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
ExternProto
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Exercícios
• Exercite a sua criatividade 
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Referências
• BRUTZMAN, Don. X3D Tooltips.Disponível em:
http://www.web3d.org/x3d/content/X3dTooltips.html
, acessado em: 14/05/2009;
• GEROIMENKO, Vladimir; CHEN, Chaimei.
Visualizing Information Using SVG and X3D.
Editora Springer, 298p. 2005.
• ISSO/IEC 19775. X3D Abstract Specification.
Disponível em: <http://libx3d.sourceforge.net/ISOIEC-19775-X3DAbstractSpecification/>, acessado
em 15/05/2009.
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Referências
• BRUTZMAN, Don; DALY, Leonard. X3D:
3D Graphics for Web Authors. Morgan
Kaufmann Publishers, 2007.
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Obrigado !
[email protected]
www.joinville.udesc.br/larva
Alessandro Hoss
LARVA - LAboratório de Realidade Virtual Aplicada
Download

Slidees do Minicurso X3D com Java ministrado - WWW2