close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

3D-Formate im Web Was ist VRML

EinbettenHerunterladen
3D-Formate im Web
Teil 1: VRML
Von Lars Hillebrandt,
wtell@upb.de
Was ist VRML
Virtual Reality Modeling Language
„ VRML ist die am häufigsten
verwendete Sprache für 3D-Grafik
im Web.
„ Seit 1997 ISO-Standard
„
1
Die Entstehung
1993: 3D-Schnittstelle zum Web von
Mark Pesce und Tom Parisi
„ 1994: erste WWW-Konferenz in
Genf. Idee zu VRML von Tim
Berners-Lee und Dave Ragget
„ Gründung einer Mail-Liste und erste
Anforderungsdefinitionen
„
Die Entstehung
1995: Gründung der VAG, „VRML
Arcitecture Group“
„ VRML 1.0
Open-Inventor-Format von SGI als
Grundlage
„ Entwicklung von Version 1.1 wird
zugunsten von VRML 2.0
aufgegeben.
„
2
Die Entstehung
„
Vorschläge der Industrie für VRML 2.0:
„
„
„
„
„
„
„
Moving Worlds von SGI und Sony. Beinhaltet
Erweiterungen von VRML 1.1
HoloWeb von Sun (Java)
ActiveVRML von Microsoft (DirectX)
Reactive Virtual Environment von IBM Japan
Out Of This World von Apple (QuickDraw 3DMetafile-Format)
Dynamic Worlds von GMD
Die Wahl fiel auf Moving Worlds.
Die Entstehung
1996: aus der VAG wird das
VRML-Konsortium
„ VRML 2.0 wird verabschiedet
erstmals Möglichkeit zur Animation,
Interaktion und Multimedia
Version 2.0 ist inkompatibel zu 1.0
„
3
Die Entstehung
1997: VRML 2.0 wird praktisch
unverändert als VRML 97
international standardisiert
( ISO/IEC 14772 )
„ Kommender Standard ist VRML-NG
alias VRML-200x alias X3D
„
Aufbau einer VRML-Datei
„
„
„
„
„
VRML ist rein Textbasiert
Jede VRML-Datei beginnt mit einem
Header:
#VRML V2.0 utf8
Die Objekte in der 3D-Welt werden durch
Nodes (Knoten) beschrieben.
Nodes sind die VRML-Pendants zu Klassen
in Java oder C++
Alle Nodes einer VRML-Datei bilden einen
Szenengraphen.
4
Ein Beispiel
#VRML V2.0 utf8
Shape {
appearance Appearance {
material Material {
diffuseColor 1 0 0 # RGB
}
}
geometry Box {}
}
Szene
Shape
Beispiel – Nodes
„
„
Jeder Node-Typ hat vordefinierte Eigenschaften.
Im Beispiel
Appearance {
exposedField SFNode material NULL
exposedField SFNode texture NULL
exposedField SFNode textureTransform NULL
}
Dem Wert der Eigenschaft „material“ des
Appearance-Nodes wird eine Referenz auf einen
Material-Node zugewiesen.
5
Beispiel - Nodes
„
Im Material-Node wird ein
Standardwert neu gesetzt:
Material {
exposedField SFColor diffuseColor 0.8 0.8 0.8
...
}
Nodes
„
Es gibt viele Arten von Nodes:
Shapes
„ Colors
„ Lights
„ Viewpoints
„ Sensors
„ Interpolators
„ ...
„
6
Nodes – Events
Nodes können „eventIn“ und
„eventOut“ Felder besitzen
„ Nicht alle Nodes verfügen über
Events. Einige können nur senden,
andere nur empfangen.
„ Wer was an wen sendet wird durch
Routes definiert.
„
Nodes – Events - Beispiel
DEF TS TouchSensor {
eventOut SFBool isOver
...
}
DEF DL DirectionalLight {
exposedField SFBool on
...
}
ROUTE TS.isOver TO DL.on
7
Nodes - Transformationen
„
„
„
Spezielle Transform-Nodes
Werden im Szenengraph
oberhalb der Nodes eingefügt,
auf die die Transformation
wirken soll
Beispiel:
Transform {
translation 2 0 0 #x y z
children [
Shape { ... } #1
Shape { ... } #2
]
}
Shape { ... } #3
Szene
Transform
Shape 3
Shape 1
Shape 2
Animation
TimeSensor
Interpolator
Szene
Transform
Shape
8
Scripte - JavaScript
„
„
Spezielle Script-Nodes
Der Interpolator-Knoten von eben in JavaScript:
DEF DREHDATEN Script {
eventIn SFFloat set_fraction
eventOut SFRotation value_changed
url "vrmlscript:
function set_fraction(value) {
value_changed[0]=0;
value_changed[1]=1;
value_changed[2]=0;
value_changed[3]=value*2.0*Math.PI;
}"
}
Scripte - Java
„
Der gleiche Knoten in Java:
DEF DREHDATEN Script {
eventIn SFFloat set_fraction
eventOut SFRotation value_changed
url "hello_java.class"
}
9
Hyperlinks in VRML
„
„
„
Hyperlinks werden durch Anchor-Nodes realisiert
Sie sind das Pendant zu den
<A> - Tags in HTML
Beispiel:
Anchor {
url „http://www….“
description „Hier geht’s weiter“
children [
Shape {
…
geometry Cone { }
}
]
}
Einbettung in Webseiten
1. Möglichkeit: Direkter Link
Wenn VRML-Dokumente einzeln
betrachtet werden, füllen sie das ganze
Browser-Fenster.
Einfach zu realisieren, ermöglicht aber
keine Kontrolle über die
Fenstereigenschaften.
Besser: Mit JavaScript ein neues BrowserFenster öffnen
10
Einbettung in Webseiten
2. Möglichkeit: Einbetten des VRML-Codes
in eine HTML-Datei mittels Embed oder
Object – Tags
<OBJECT CLASSID="CLSID:86A88967-7A20-11d2-8EDA00600818EDB1"
CODEBASE="http://www.parallelgraphics.com/bin/cortvrml.cab#Ve
rsion=4,0,0,76" WIDTH="400" HEIGHT="300"
style="float: left; margin: 8px;">
<PARAM NAME="SRC" VALUE="satellit.wrl">
<PARAM NAME="VRML_BACKGROUND_COLOR"
VALUE="#000000">
<PARAM NAME="VRML_DASHBOARD" VALUE="false">
<PARAM NAME="VRML_SPLASHSCREEN" VALUE="false">
<PARAM NAME="CONTEXTMENU" VALUE="false">
</OBJECT>
11
Document
Kategorie
Internet
Seitenansichten
2
Dateigröße
447 KB
Tags
1/--Seiten
melden