Präsentation herunterladen
1
GDV Übungen: VRML Einführung in VRML
Tobias Breiner Johann Wolfgang Goethe-Universität Frankfurt/Main VRML-Einführung / 2006 SS GDV Tobias Breiner
2
Aussprache VRML Häufigste Aussprache: “Wörmel” Seltener:
“VauErrEmmEll” Wofür könnten die Buchstaben stehen? VRML-Einführung / 2006 SS GDV Tobias Breiner
3
Was ist VRML ? Virtual Reality Modeling (oder Markup) Language
Also eine Beschreibungssprache keine Progrogrammiersprache oder gar ein Softwaresystem!!! Geeignet um 3D-Szenen zu beschreiben Einfaches ASCII-Format VRML-Einführung / 2006 SS GDV Tobias Breiner
4
Was ist VRML ? Editierbar mit beliebigen Editor
Umsetzung der Sprachbeschreibung durch VRML - Browser Standardisierte Sprache: Eine VRML - Szene durch verschiedene Browser darstellbar Filesuffix = “.WRL” VRML-Einführung / 2006 SS GDV Tobias Breiner
5
Beispiel einer VRML Szene
VRML-Einführung / 2006 SS GDV Tobias Breiner
6
VRML: Features (Geometrien)
Geometriebeschreibungen Grundprimitive (nur Würfel, Kegel, Zylinder und Kugel) Polygonale Objekte Punktwolken und Drahtgittermodelle Elevation Grids Extrudierte Objekte Text VRML-Einführung / 2006 SS GDV Tobias Breiner
7
VRML: Features (Oberflächen)
Materialbeschreibungen Farbe Schattierungen Beleuchtungsbeschreibungen Texturierungen Auch Movie-Textures Aber keine Bumpmaps! VRML-Einführung / 2006 SS GDV Tobias Breiner
8
VRML: Features (Raum-Zeit)
Transformationsbeschreibungen Lichter Point Directional Spot Kamerabeschreibungen Viewpoints VRML-Einführung / 2006 SS GDV Tobias Breiner
9
VRML: Features (Interaktion)
Animation durch Interaktionsbeschreibungen Sensoren aller Art: Zeit Sichtbarkeit Touch Collision (z.B. mit Bounding Box) Interpolatoren Skalarwerte Position Farbe VRML-Einführung / 2006 SS GDV Tobias Breiner
10
VRML: Features (Special Effects)
Hintergrund und Nebel Multimediabeschreibungen Video 3D Sound Billboards Hypermediabeschreibung Anchors VRML-Einführung / 2006 SS GDV Tobias Breiner
11
VRML: Features (Strukturierung)
Strukturbeschreibungen Gruppierungen Prototypen Detaillierungsbeschreibungen VRML-Einführung / 2006 SS GDV Tobias Breiner
12
VRML: Features Zusammenfassung
VRML ist Beschreibungssprache für interaktive 3D Welten VRML integriert Animation, Multimedia und Hypermedia VRML kann über Internet / WWW übertragen werden VRML kann mit immersiven Technologien umgesetzt werden VRML-Einführung / 2006 SS GDV Tobias Breiner
13
VRML und Programmierlogik
Programme können in die VRML Szene eingreifen Anwendungsbeispiele Mehrbenutzersysteme Datenbankanbindung Simulationen VRML-Einführung / 2006 SS GDV Tobias Breiner
14
VRML: Geschichte (I) 1994 Mark Pesce, Tony Parisi:
Präsentieren auf der ersten WWW-Konferenz in Genf ein dreidimensionales Interface namens “LABYRINTH” Mitte 1995 Gavin Bell: Entscheidung durch “Internet vote” für eine Erweiterung des “Open Inventor”-Formates von Silicon Graphics Inc. => VRML 1.0 1995: Beginn der Unterstützung durch SGI, Netscape und Microsoft VRML-Einführung / 2006 SS GDV Tobias Breiner
15
VRML: Geschichte (II) 1995, VRML Architecture Group (VAG): Gründung auf der SIGGRAPH’95 Anfang 1996, VAG: Aufruf zu Vorschlägen für VRML 2.0 1996, VAG: VRML 2.0 wird auf der SIGGRAPH’96 spezifiziert nach offener Abstimmung auf Moving Worlds von SGI basierend 1996, VRML Konsortiums : Gründung VRML-Einführung / 2006 SS GDV Tobias Breiner
16
VRML: Geschichte (III)
Anfang 1997: Beginn der ISO -Standardisierung mit der Erarbeitung von VRML 97 Ende 1997: wird VRML 97 standardisiert als ISO/IEC DIS Zukunft: x3d? VRML-Einführung / 2006 SS GDV Tobias Breiner
17
Der 3D Raum Koordinatensystem 3D - Koordinaten, z.B. (2.0, 1.5, 7.21)
rechtshändig vs. linkshändig 3D - Koordinaten, z.B. (2.0, 1.5, 7.21) y y z x x z VRML-Einführung / 2006 SS GDV Tobias Breiner
18
Der 3D Raum Achtung VRML benutzt rechtshändiges System!!! => Inkonsistenz zu OpenGL, RealiMation, Mantra4D, etc. VRML-Einführung / 2006 SS GDV Tobias Breiner
19
Globale vs. lokale Koordinatensysteme
Hierarchie von Koordinatensystemen Bsp. Gabel eines Gabelstaplers Koordinaten der Gabel bzgl. Stapler Koordinaten des Staplers bzgl. der Welt Spitze der Hierarchie: Weltkoordinaten VRML-Einführung / 2006 SS GDV Tobias Breiner
20
Der Szenegraph Visualisierung der Szenenhierarchie
Kanten: Abhängigkeitsrelation Knoten ( engl. Nodes ): Geometrien Transformationen Materialeigenschaften ... Knotenfelder ( engl. Fields ) VRML-Einführung / 2006 SS GDV Tobias Breiner
21
Szenegraph Beispiel (1)
VRML-Einführung / 2006 SS GDV Tobias Breiner
22
Szenegraph Beispiel (2)
VRML-Einführung / 2006 SS GDV Tobias Breiner
23
Szenegraph Beispiel (3)
VRML-Einführung / 2006 SS GDV Tobias Breiner
24
Szenegraph Beispiel (4)
VRML-Einführung / 2006 SS GDV Tobias Breiner
25
Szenegraph Beispiel (5)
VRML-Einführung / 2006 SS GDV Tobias Breiner
26
Eine VRML Datei #VRML V2.0 utf8 Shape { appearance Appearance {
material Material { } geometry Cone { bottomRadius 2.4 height 5.0 VRML-Einführung / 2006 SS GDV Tobias Breiner
27
Aufbau von VRML Dateien (I)
Eine VRML2-Datei beginnt immer mit folgendem File-Header: #VRML V2.0 utf8 #VRML = Es handelt sich um ein VRML-Skript V2.0 = Version utf8 = Character Set, hier: UTF-8 ( ISO :1993 ) = UCS (Universal Character Set) Transformation Format, 8-bit VRML-Einführung / 2006 SS GDV Tobias Breiner
28
Aufbau von VRML Dateien (II)
Zeilenkommentare (Beginn mit #) VRML Knoten und Felder Zuordnung mit geschweiften Klammern { } VRML-Einführung / 2006 SS GDV Tobias Breiner
29
Gruppieren von Knoten Zusammenfassen von Knoten zu einer Gruppe: Group Node Bsp: Group{ children [ Shape{ ...} Shape{ ...} ] } VRML-Einführung / 2006 SS GDV Tobias Breiner
30
Transformationen (Translation)
Translation (Verschiebung) Verschiebungsvektor: ( x, y, z ) VRML-Einführung / 2006 SS GDV Tobias Breiner
31
Transformationen (Rotation)
Rotation (Drehung) Rotationsachse: ( x, y, z ) Beachte: nur Richtung ist entscheidend Rotationswinkel: j Beachte: Vorzeichen des Winkels ermitteln mit der “Rechte-Hand-Regel” Beachte: Winkel in radian messen ( p = 3, entsprechen 180° ) Rotationsachse: ( x, y, z ) VRML-Einführung / 2006 SS GDV Tobias Breiner
32
Transformationen (Scale)
Skalierung (Größenänderung) Skalierungsfaktoren: ( sx , sy , sz ) Rotationsachse: ( x, y, z ) Rotationswinkel: j Beachte: Skalierungsrotation 2. Skalierung 3. Rückrotation VRML-Einführung / 2006 SS GDV Tobias Breiner
33
Transformationsnode Darstellung von Transformationen in VRML durch einen Node Angabe von Werten zur Spezifizierung der Transformation in Fields Bsp. rotation Spezielles Field mit Liste der Knoten, die von der Transformation betroffen sind Bsp. children [ ] VRML-Einführung / 2006 SS GDV Tobias Breiner
34
Transformationsnode (allgemein)
eventIn MFNode addChildren eventIn MFNode removeChildren exposedField SFVec3f center 0 0 0 # (- , ) exposedField MFNode children [] exposedField SFRotation rotation # [-1,1],(- , ) exposedField SFVec3f scale 1 1 1 # (0, ) exposedField SFRotation scaleOrientation #[-1,1],(,) exposedField SFVec3f translation 0 0 0 # (-) field SFVec3f bboxCenter 0 0 0 # (- , ) field SFVec3f bboxSize # (0, ) or -1,-1,-1 } VRML-Einführung / 2006 SS GDV Tobias Breiner
35
Transformationsnode: Beispiel
#VRML V2.0 utf8 Transform{ children [ Shape { appearance Appearance{ material Material { } } geometry Box { } } ] translation rotation } VRML-Einführung / 2006 SS GDV Tobias Breiner
36
VRML Transformationsknoten
VRML hat eine Skalierung S, eine Rotation R und eine Translation T(t) in fester Folge: 1. Translation T zum center point c 2. Skalierungsrotation RsT, Skalierung S, Rückrotation Rs 3. Rotation R 4. Rücktranslation vom center point c 5. Translation T(t) VRML-Einführung / 2006 SS GDV Tobias Breiner
37
VRML Transformationsknoten
center C rotation R scale S scaleOrientation SR translation T children [...] } ist äquivalent zu: Transform { translation T children Transform { translation C children Transform { rotation R children Transform { rotation SR children Transform { scale S children Transform { rotation -SR children Transform { translation-C children [...] }}}}}}} VRML-Einführung / 2006 SS GDV Tobias Breiner
38
VRML Typen (I) Single Field Values (SF) Multiple Field Values (MF)
SFBool TRUE, FALSE SFInt MFInt32 SFFloat MFFloat VRML-Einführung / 2006 SS GDV Tobias Breiner
39
VRML Typen (II) SFString “Gabelstapler” MFString
SFTime (entspricht 0 Uhr 1 Minute Sek. GMT am ) SFNode Transform MFNode SFImage VRML-Einführung / 2006 SS GDV Tobias Breiner
40
VRML Typen (III) SFVec2f 1.3 4.5 MFVec2f SFVec3f 34.5 -4.9 9.0 MFVec3f
SFRotation MFRotation SFColor MFColor VRML-Einführung / 2006 SS GDV Tobias Breiner
41
DEF - USE Mechanismus Knoten können benannt werden Bsp. DEF my_box Box { ... } Namen bestehen aus Buchstaben, Ziffern, Unterstrich beginnen mit Buchstaben unterscheiden Groß- und Kleinschreibung Knoten können beliebig oft benutzt werden Bsp. USE my_box VRML-Einführung / 2006 SS GDV Tobias Breiner
42
Reservierte Namen in VRML
VRML-Einführung / 2006 SS GDV Tobias Breiner
43
Events und Routen (I) Ereignis (Event) Verbindung (Route) Wertänderung
Benutzerinteraktion Verbindung (Route) Verbindung zweier Knoten zum Austausch von Events Startknoten (Quelle) Zielknoten (Senke) VRML-Einführung / 2006 SS GDV Tobias Breiner
44
Events und Routen (II) Routen beziehen sich auf Fields eines Nodes
Fields werden klassifiziert eventIn eventOut exposedField set_XXX XXX_changed Events und Routen sind getypt VRML-Einführung / 2006 SS GDV Tobias Breiner
45
Routing: Beispiel DEF Würfel Transform{ ... } DEF Kugel Transform{ ...
} DEF Kugel Transform{ ... } ROUTE Würfel.translation_changed TO Kugel.set_scale VRML-Einführung / 2006 SS GDV Tobias Breiner
46
Syntax von VRML Knoten Knotenname Feldliste Für jedes Feld Name
Defaultwert Art (field, eventIn, eventOut, exposedField) Typ VRML-Einführung / 2006 SS GDV Tobias Breiner
47
Beispiel: Syntax des TimeSensors
VRML-Einführung / 2006 SS GDV Tobias Breiner
48
TimeSensoren VRML-Einführung / 2006 SS GDV Tobias Breiner
49
Animation Zeitquelle Interpolator
Positioninterpolator Colorinterpolator Scalarinterpolator ... Routen: Zeit > Interpolator Interpolator > zu animierender Wert VRML-Einführung / 2006 SS GDV Tobias Breiner
50
PositionInterpolator
Zuordnung von Werten aus einem Interval (meist von 0.0 bis 1.0) auf Positionen Eingang: set_fraction (SFFloat) Ausgang: value_changed (SFVec3f) Zuordnung wird durch lineare Interpolation aus einer Tabelle errechnet key [ 0.0, 1.0 ] keyValue [ , ] VRML-Einführung / 2006 SS GDV Tobias Breiner
51
Routingbeispiel für Animation
Kugel sei ein Transform Node mit Shape KugelPfad sei ein PositionInterpolator Node Uhr sei ein TimeSensor Node ROUTE Uhr.fraction_changed TO KugelPfad.set_fraction ROUTE KugelPfad.value_changed TO Kugel.set_translation VRML-Einführung / 2006 SS GDV Tobias Breiner
52
Inlines Einfügen von VRML Dateien in VRML Dateien
Beispiel: Inline { url “beispiel.wrl” } Eigener Namensraum bei DEF / USE! VRML-Einführung / 2006 SS GDV Tobias Breiner
53
VRML Knoten Auflistung aller Nodes und Fields in der VRML Spezifikation VRML-Einführung / 2006 SS GDV Tobias Breiner
54
Prototypen (I) Kapseln von Teilen des Szenengraphen
Eigendefinierter Knoten Parametrisierbar Syntax: PROTO name [ interface ] { body } Herstellen einer Verbindung zwischen interface und body mit dem IS Konstrukt VRML-Einführung / 2006 SS GDV Tobias Breiner
55
Prototypen (II) PROTO Würfel [ field SFVec3f abmessung 1.0 1.0 1.0 ] {
Shape { appearence Appearence{ material Material{ } } geometry Box{ size IS abmessung } } } VRML-Einführung / 2006 SS GDV Tobias Breiner
56
Externe Prototypen Syntax: EXTERNPROTO name [ interface ] { urls }
Anlegen von Prototypbibliotheken Beispiel: EXTERNPROTO Cube [ field SFVec3f abmessung ] { “lib.wrl#Würfel” } VRML-Einführung / 2006 SS GDV Tobias Breiner
57
Aufbau von VRML - Dateien (II)
VRML - Header Kommentare Prototyp - Definitionen Knoten und Felder Routen VRML-Einführung / 2006 SS GDV Tobias Breiner
58
Java3D und VRML Ähnlichkeiten: Unterschiede: Szenegraphmodell
Java Klassen zur Repräsentation von Nodes etc. Unterschiede: Kein Routing, sondern Java Events Java3D legt kein Geometrieformat fest Java3D ist mächtiger VRML-Einführung / 2006 SS GDV Tobias Breiner
59
Browser für VRML Cortona (Parallel Graphics), Download:
BS Contact VRML (Bitmanagement Software) Blaxxun Cosmo Player (wird nicht mehr weitergepflegt) World View VRML-Einführung / 2006 SS GDV Tobias Breiner
60
Informationsressource: WWW (I)
VRML Konsortium Homepage Gesellschaft mit dem Ziel der Standar-disierung und Verbreitung von VRML VRML Repository Sehr gute, umfassende Zusammenstellung von Verweisen zum Thema VRML VRML-Einführung / 2006 SS GDV Tobias Breiner
61
Informationsressource: WWW (II)
ParallelGraphics Wichtiger VRML-Browser Hersteller (1) blaxxun interactive Wichtiger VRML-Browser Hersteller (2) Javasoft Homepage Wichtige Informationsquelle zu Java VRML-Einführung / 2006 SS GDV Tobias Breiner
62
Informationsressource: WWW (III)
Xj3D Enthält auch VRML97 Loader für Java3D Java API Spezifikation siehe Java Platform Core API The Mining Company Grosses Repository VRML-Einführung / 2006 SS GDV Tobias Breiner
63
Informationsressource: Mailinglist
Wichtigste allgemeine Mailingliste: subscribe www-vrml Liste spezielle zum Thema Scripting: subscribe vrml-behaviors VRML Benutzergruppe (dt.): VRML-Einführung / 2006 SS GDV Tobias Breiner
64
Informationsressource: Buch (I)
VRML 2.0 Source Book Ames, Nadeau, Moreland Wiley, 1996 Annotated VRML Reference Manual Bell, Carey Addison-Wesley, 1997 Teach Yourself VRML in 21 Days Marrin, Campbell SAMS Net, 1997 VRML-Einführung / 2006 SS GDV Tobias Breiner
65
Informationsressource: Buch (II)
The VRML 2.0 Handbook Hartman, Wernecke Addison-Wesley, 1996 Late Night VRML 2.0 with Java Roehl, Couch et al. ZD Press, 1997 VRML 97 (dt.) Addison-Wesley, 1997 VRML-Einführung / 2006 SS GDV Tobias Breiner
66
Informationsressource: Buch (III)
JAVA for 3D and VRML Worlds Lea, Matsuda, Miyashita New Riders, 1996 JAVA 1.1 für Insider (dt.) Morrison SAMS, 1997 JAVA 1.1 in a Nutshell (dt.) O’Reilly, 1997 VRML-Einführung / 2006 SS GDV Tobias Breiner
67
Copyright Diese Folien basieren auf folgenden Kursen:
C. Seiler Einführung in VRML/ Uni Frankfurt SS 2003 R. Dörner Computergraphik mit VRML und Java3D, Uni Frankfurt 2000 WS Praktikum R. Dörner, C. Elcacho, A. Schäfer: VRML und Java – Programmierung von 3D Welten für das Internet, AWF Seminar am Zentrum f. Graph. Datenverarbeitung D.R. Nadeau, H. A. Sowrizal: Introduction to Programming with Java3D Eurographics‘99 Tutorial J. Zukowski: Introduction to the javabeans API, Tutorial von SUN Microsystems Inc. VRML-Einführung / 2006 SS GDV Tobias Breiner
68
Fragen & Kommentare ? ? ! VRML-Einführung / 2006 SS GDV Tobias Breiner
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.