INF 1366 – Computação Gráfica Interativa X3D Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366 Alberto Raposo – PUC-Rio
Referência Básica http://www.x3dgraphics.com/ Alberto Raposo – PUC-Rio
X3D (Extensible 3D) Proposta para nova versão de VRML Compatibilidade com VRML 97 Integração com XML definição de um novo conjunto de tags adequado à classe de documentos que se deseja representar Componentização funcionalidade crucial encapsulada em um núcleo Extensibilidade núcleo expandido para prover novas funcionalidades (e.g., H-Anim, GeoVRML) Alberto Raposo – PUC-Rio
X3D Browser Alberto Raposo – PUC-Rio
XML Vantagens Fácil de ler, tanto para humanos quanto para máquinas Metalinguagens custommizáveis para estruturação de dados Facilidade de validação Alberto Raposo – PUC-Rio
O X3D X3D - Extensible 3D Um padrão aberto Formato Universal de Transferência de dados 3D Um padrão aberto Fácil conversão de arquivos VRML Fácil de entender e modelar Portável entre plataformas Fácil de ensinar e programar Alberto Raposo – PUC-Rio
X3D & ISO Formato definido pela ISO VRML 2.0 ISO/IEC 14772-1:1997 (aka VRML97) X3D ISO/IEC FDIS 19775:200x Não tem royalties associados A ISO publicará a especificação para o público Alberto Raposo – PUC-Rio
X3D & ISO Alberto Raposo – PUC-Rio
Desenvolvimento do X3D Conjunto de exemplos na WEB Ferramentas X3D http://www.web3d.org/x3d/content/examples/help.html#Examples Ferramentas X3D http://www.web3d.org/tools/ Conjunto de modelos para conformidade http://www.web3d.org/x3d/content/examples/Conformance/index.html Alberto Raposo – PUC-Rio
Estrutura de um arquivo X3D 2 possibilidades (.x3d – XML ou .x3dv – VRML) Partes do arquivo: X3D header statement Profile statement Component statement (opcional, vários) META statement (opcional, vários) X3D root node (implícito no VRML) X3D scene graph child nodes (vários) Alberto Raposo – PUC-Rio
XML Header Não tem nó “visível”; só instruções gerais X3D header DTD – Document Type Definition Schema Alberto Raposo – PUC-Rio
XML Header .x3d X3D header .x3dv Alberto Raposo – PUC-Rio
Profile Statements Cada profile tem um conjunto de funcionalidades Core: requisitos mínimos de um browser Interchange: troca de modelos geométricos entre aplicações Interactive / MPEG-4Interactive CAD Interchange Immersive: equivalente ao VRML97 – objetos + eventos Full: inclui extensões do X3D (H-Anim, DIS, NURBS, etc) Alberto Raposo – PUC-Rio
Component Statements Dizem ao browser que ele precisa orover suporte a um componente específico, em um nível específico. Full profile já inclui todos os componentes... Alberto Raposo – PUC-Rio
XML Header .x3d Profile Components .x3dv Alberto Raposo – PUC-Rio
Meta Statements Informações adicionais (autor, copyright, referências, etc) Alberto Raposo – PUC-Rio
File Encodings XML (.x3d) ClassicVRML (.x3dv) Compressed (.x3db) Alberto Raposo – PUC-Rio
XML (.x3d) XML é base para praticamente tudo que é usado na Web Strong validation Alberto Raposo – PUC-Rio
ClassicVRML (.x3dv) Binário (.x3db) Compatibilidade com VRML (padrão de muito sucesso na Web desde 1997). Mais compacto que arquivos texto Binário (.x3db) Alberto Raposo – PUC-Rio
X3D - Exemplo de Código (.x3d) Alberto Raposo – PUC-Rio http://www.web3d.org/x3d/content/examples/HelloWorld.html
X3D - Exemplo de Código (.x3d) Alberto Raposo – PUC-Rio
X3D - Exemplo de Código (.x3dv) #X3D V3.0 utf8 # X3D-to-ClassicVRML XSL translation autogenerated by X3dToVrml97.xslt # http://www.web3d.org/x3d/content/X3dToVrml97.xslt # Generated using XSLT processor: SAXON 8.7 from Saxonica PROFILE Immersive # [X3D] version=3.0 # [X3D] noNamespaceSchemaLocation=http://www.web3d.org/specifications/x3d-3.0.xsd # [head] META "title" "HelloWorld.x3d" META "description" "Simple X3D example" META "created" "30 October 2000" META "modified" "29 October 2006" META "creator" "Don Brutzman" META "identifier" "http://www.web3d.org/x3d/content/examples/Basic/HelloWorld.x3d" META "generator" "X3D-Edit, http://www.web3d.org/x3d/content/README.X3D-Edit.html" META "license" "license.html" # [Scene] ========== ========== ========== NavigationInfo { type [ "EXAMINE" "ANY" ] } ### Default X3D NavigationInfo # Example scene to illustrate X3D tags and attributes. Group { children [ Viewpoint { description "hello, world!" position 0 -1 7 } Alberto Raposo – PUC-Rio
X3D - Exemplo de Código (.x3dv) Transform { children [ rotation 0 1 0 3 Shape { geometry Sphere { } appearance Appearance { texture ImageTexture { url [ "earth-topo.png” "earth-topo.jpg“ "earth-topo.gif“ "earth-topo-small.gif“ "../earth-topo.png" "../earth-topo.jpg“ "../earth-topo.gif“ "../earth-topo-small.gif“ "/www.web3d.org/x3d/content/examples/earth-topo.png“ "/www.web3d.org/x3d/content/examples/earth-topo.jpg“ "/www.web3d.org/x3d/content/examples/earth-topo.gif“ "/www.web3d.org/x3d/content/examples/earth-topo-small.gif“ "http://www.web3d.org/x3d/content/examples/earth-topo.png“ "http://www.web3d.org/x3d/content/examples/earth-topo.jpg“ "http://www.web3d.org/x3d/content/examples/earth-topo.gif" "http://www.web3d.org/x3d/content/examples/earth-topo-small.gif" ] ] Alberto Raposo – PUC-Rio
X3D - Exemplo de Código (.x3dv) Transform { translation 0 -2 0 children [ Shape { geometry Text { string [ "Hello" "world!" ] fontStyle FontStyle { justify [ "MIDDLE" "MIDDLE" ] } appearance Appearance { material Material { diffuseColor 0.1 0.5 1 ] Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa X3D Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366 Alberto Raposo – PUC-Rio