alessandro hoss larva - laboratório de realidade virtual aplicada alessandro hoss
TRANSCRIPT
Alessandro Hoss LARVA - LAboratório de Realidade Virtual Aplicada
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 “3-
upla” 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/ISO-IEC-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 !
www.joinville.udesc.br/larva