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
Download

03_X3D_Intro - PUC-Rio