INF 1366 – Computação Gráfica Interativa X3D Alberto B. Raposo [email protected] 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 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 – 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 – <?xml?> – 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) • Compatibilidade com VRML (padrão de muito sucesso na Web desde 1997). Binário (.x3db) • Mais compacto que arquivos texto 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 [ Transform { rotation 0 1 0 3 children [ 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/earthtopo.png“ "/www.web3d.org/x3d/content/examples/earth-topo.jpg“ "/www.web3d.org/x3d/content/examples/earthtopo.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/earthtopo.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 [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366 Alberto Raposo – PUC-Rio