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