Post on 09-Oct-2019
transcript
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 1 Vers. 26-Apr-01
Praktikum VRML und Java3D:
Einführung in VRML
C. SeilerUni Frankfurt / Fraunhofer-AGC
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 2 Vers. 26-Apr-01
Copyright
Diese Folien basieren auf folgenden Kursen:– 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
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 3 Vers. 26-Apr-01
Copyright
• John Zukowski:Introduction to the JavaBeans API,Tutorial von Sun Microsystems Inc.
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 4 Vers. 26-Apr-01
VRML
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 5 Vers. 26-Apr-01
Was ist VRML ?
• Virtual Reality Modeling Language• Beschreibungssprache
( kein Softwaresystem )• Umsetzung der Sprachbeschreibung durch
VRML - Browser• Standardisierte Sprache:
Eine VRML - Szene durch verschiedeneBrowser darstellbar
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 6 Vers. 26-Apr-01
Beispiel einer VRML Szene
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 7 Vers. 26-Apr-01
VRML: Features (I)
• Geometriebeschreibungen– Grundprimitive (Würfel, Zylinder, ...)– Polygonale Objekte– Elevation Grids– Extrudierte Objekte
• Materialbeschreibungen– Farbe– Schattierungen
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 8 Vers. 26-Apr-01
VRML: Features (II)
• Beleuchtungsbeschreibungen• Texturierungen• Textbeschreibungen• Transformationsbeschreibungen• Animationen
– Zeit– Interpolation
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 9 Vers. 26-Apr-01
VRML: Features (III)
• Interaktionsbeschreibungen– Billboards– Sensoren
• Hintergrund und Nebel• Multimediabeschreibungen
– Video– 3D Sound
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 10 Vers. 26-Apr-01
VRML: Features (IV)
• Strukturbeschreibungen– Gruppierungen– Prototypen
• Detaillierungsbeschreibungen• Kamerabeschreibungen
– Viewpoints• Hypermediabeschreibung
– Anchors
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 11 Vers. 26-Apr-01
VRML: Features (V)
• Beschreibung von Programmierlogik– Java– Javascript– VRMLscript
– Java Scripting API– External Authoring Interface
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 12 Vers. 26-Apr-01
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
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 13 Vers. 26-Apr-01
VRML und Programmierlogik
• Einbindung von Programmen beliebiger Komplexität
• Programme können in die VRML Szene eingreifen
• Anwendungsbeispiele– Mehrbenutzersysteme– Datenbankanbindung– Simulationen
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 14 Vers. 26-Apr-01
VRML: Geschichte (I)
• 1994 Mark Pesce, Tony Parisi, Gavin Bellbeginnen mit der Idee einer Erweiterungdes Internetstandards HTML in San Francisco
• Mitte 1995: VRML 1.0basiert nach Entscheidung durch “Internet vote” auf Open Inventor von SGI
• Beginn der Unterstützung durch SGI, Netscape und Microsoft
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 15 Vers. 26-Apr-01
VRML: Geschichte (II)
• VRML Architecture Group (VAG) wird aufder SIGGRAPH’95 gegründet
• Anfang 1996 Aufruf zu Vorschlägen fürVRML 2.0 durch die VAG
• VRML 2.0 wird auf der SIGGRAPH’96spezifiziert nach offener Abstimmung auf Moving Worlds von SGI basierend
• Gründung des VRML Konsortiums
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 16 Vers. 26-Apr-01
VRML: Geschichte (III)
• Anfang 1997 Beginn der ISO -Standardisierung mit der Erarbeitung von VRML 97
• Ende 1997 wird VRML 97 standardisiert alsISO/IEC DIS 14772-1
• Zukunft: x3d, ISO in 2002
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 17 Vers. 26-Apr-01
Der 3D Raum
• Koordinatensystem– rechtshändig vs. linkshändig
• 3D - Koordinaten, z.B. (2.0, 1.5, 7.21)
x
y
zx
yz
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 18 Vers. 26-Apr-01
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
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 19 Vers. 26-Apr-01
Der Szenengraph
• Visualisierung der Szenenhierarchie• Kanten: Abhängigkeitsrelation• Knoten ( engl. Nodes ):
– Geometrien– Transformationen– Materialeigenschaften– ...
• Knotenfelder ( engl. Fields )
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 20 Vers. 26-Apr-01
Eine VRML Datei
#VRML V2.0 utf8Shape {
appearance Appearance {material Material {
}geometry Cone {
bottomRadius 2.4height 5.0
}}
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 21 Vers. 26-Apr-01
Aufbau von VRML Dateien (I)
• VRML Header– Version– Character Set,
z.B. UTF-8 ( ISO 10646-1:1993 )• Zeilenkommentare (Beginn mit #)• VRML Knoten und Felder• Zuordnung mit geschweiften Klammern { }
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 22 Vers. 26-Apr-01
Gruppieren von Knoten
• Zusammenfassen von Knoten zu einer Gruppe: Group Node
• Bsp:Group{
children [Shape{ ...}Shape{ ...}
]}
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 23 Vers. 26-Apr-01
Transformationen (I)
• Translation (Verschiebung)– Verschiebungsvektor: ( x, y, z )
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 24 Vers. 26-Apr-01
Transformationen (II)
• Rotation (Drehung)– Rotationsachse: ( x, y, z )
Beachte: nur Richtung ist entscheidend– Rotationswinkel: ϕ
Beachte: Vorzeichen des Winkels ermittelnmit der “Rechte-Hand-Regel”Beachte: Winkel in radian messen ( π= 3, 14... entsprechen 180° )
– Rotationszentrum: ( x, y, z )
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 25 Vers. 26-Apr-01
Transformationen (III)
• Skalierung (Größenänderung)– Skalierungsfaktoren: ( sx , sy , sz )– Rotationsachse: ( x, y, z )– Rotationswinkel: ϕ
Beachte: 1. Skalierungsrotation2. Skalierung3. Rückrotation
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 26 Vers. 26-Apr-01
Transformationsnode
• Darstellung von Transformationen in VRMLdurch einen Node
• Angabe von Werten zur Spezifizierung derTransformation in FieldsBsp. rotation 4.0 0.0 0.0 2.37
• Spezielles Field mit Liste der Knoten, die vonder Transformation betroffen sindBsp. children [ ]
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 27 Vers. 26-Apr-01
Transformationsnode: Beispiel
#VRML V2.0 utf8Transform{
children [ Shape {appearance Appearance{
material Material { } }geometry Box { } }
]translation 0.0 4.0 0.3rotation 1.0 0.0 1.0 1.57 }
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 28 Vers. 26-Apr-01
Szenengraph Beispiel (1)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 29 Vers. 26-Apr-01
Szenengraph Beispiel (2)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 30 Vers. 26-Apr-01
Szenengraph Beispiel (3)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 31 Vers. 26-Apr-01
Szenengraph Beispiel (4)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 32 Vers. 26-Apr-01
Szenengraph Beispiel (5)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 33 Vers. 26-Apr-01
Szenengraph Beispiel (6)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 34 Vers. 26-Apr-01
VRML Typen (I)
• Single Field Values (SF)Multiple Field Values (MF)
• SFBool TRUE, FALSE
• SFInt32 42MFInt32
• SFFloat -124.567MFFloat
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 35 Vers. 26-Apr-01
VRML Typen (II)
• SFString “Gabelstapler”MFString
• SFTime 65(entspricht 0 Uhr 1 Minute5 Sek. GMT am 1.1.1970)
• SFNode TransformMFNode
• SFImage
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 36 Vers. 26-Apr-01
VRML Typen (III)
• SFVec2f 1.3 4.5MFVec2f
• SFVec3f 34.5 -4.9 9.0MFVec3f
• SFRotation 1.0 1.0 4.0 3.2MFRotation
• SFColor 1.0 0.0 0.0MFColor
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 37 Vers. 26-Apr-01
DEF - USE Mechanismus
• Knoten können benannt werdenBsp. DEF my_box Box { ... }
• Namen– bestehen aus Buchstaben, Ziffern, Unterstrich– beginnen mit Buchstaben– unterscheiden Groß- und Kleinschreibung
• Knoten können beliebig oft benutzt werdenBsp. USE my_box
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 38 Vers. 26-Apr-01
Reservierte Namen in VRML
DEF EXTERNPROTO FALSE
IS eventIn TRUE
TO eventOut PROTO
NULL exposedField ROUTE
USE field
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 39 Vers. 26-Apr-01
Events und Routen (I)
• Ereignis (Event)– Wertänderung– Benutzerinteraktion
• Verbindung (Route)– Verbindung zweier Knoten zum Austausch
von Events– Startknoten (Quelle)– Zielknoten (Senke)
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 40 Vers. 26-Apr-01
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
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 41 Vers. 26-Apr-01
Routing: Beispiel
DEF Würfel Transform{ ...
}DEF Kugel Transform{
...}
ROUTE Würfel.translation_changed TOKugel.set_scale
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 42 Vers. 26-Apr-01
Syntax von VRML Knoten
• Knotenname• Feldliste• Für jedes Feld
– Name– Defaultwert– Art (field, eventIn, eventOut, exposedField)– Typ
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 43 Vers. 26-Apr-01
Beispiel: Syntax des TimeSensors
TimeSensorenabled TRUE exposed SFBool
startTime 0.0 exposed SFTime
stopTime 0.0 exposed SFTimecycleInterval 1.0 exposed SFTime
loop FALSE exposed SFBool
isActive eventOut SFBool
time eventOut SFTimecycleTime eventOut SFTimefraction_changed eventOut SFFloat
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 44 Vers. 26-Apr-01
TimeSensoren
loop = TRUE stopTime <=startTime
EndloseZyklenabfolge
loop = TRUE startTime <stopTime
Zyklenabfolge biszur Stopzeit
loop = FALSE stopTime <=startTime
1 Zyklus, Stop beiStartzeit + Zykluszeit
loop = FALSE startTime <stopTime
1 Zyklus, Stop beiStartzeit + Zykluszeitoder Stopzeit, fallsdiese vorher
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 45 Vers. 26-Apr-01
Animation
• Zeitquelle• Interpolator
– Positioninterpolator– Colorinterpolator– Scalarinterpolator– ...
• Routen: Zeit > InterpolatorInterpolator > zu animierender Wert
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 46 Vers. 26-Apr-01
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 [ 1.0 0.0 0.0, 5.0 0.0 0.0 ]
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 47 Vers. 26-Apr-01
Routingbeispiel für Animation
Kugel sei ein Transform Node mit ShapeKugelPfad sei ein PositionInterpolator NodeUhr sei ein TimeSensor Node
ROUTE Uhr.fraction_changed TOKugelPfad.set_fraction
ROUTE KugelPfad.value_changed TOKugel.set_translation
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 48 Vers. 26-Apr-01
Übung
Schreiben Sie eine VRML Szene, in der ein Würfel der Kantenlänge 3m innerhalb von10s aus dem Ursprung 10m in z-Richtung bewegt wird. Nach weiteren 20s befindet sich der Würfel wieder im Ursprung, verharrt dort 5s und bewegt sich wieder von neuem.
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 49 Vers. 26-Apr-01
Inlines
• Einfügen von VRML Dateien in VRMLDateien
• Beispiel:Inline {
url “beispiel.wrl”}
• Eigener Namensraum bei DEF / USE
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 50 Vers. 26-Apr-01
VRML Knoten
• Auflistung aller Nodes und Fields in der VRML Spezifikation
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 51 Vers. 26-Apr-01
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
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 52 Vers. 26-Apr-01
Prototypen (II)
PROTO Würfel [field SFVec3f abmessung 1.0 1.0 1.0
] {Shape { appearence Appearence{
material Material{ } }geometry Box{
size IS abmessung } }}
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 53 Vers. 26-Apr-01
Prototypen (III)
• DEF / USE hat eigenen Namensraum• Verbindung interface und body
• Verschachtelung von Prototypen möglich
fie ld expo sedF even tIn even tO u tfie ld + - - -exp o sed F + + + +even tIn - - + -even tO u t - - - +
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 54 Vers. 26-Apr-01
Externe Prototypen
• Syntax:EXTERNPROTO name [ interface ] { urls }
• Anlegen von Prototypbibliotheken• Beispiel:
EXTERNPROTO Cube [field SFVec3f abmessung 1.0 1.0 1.0
] {“lib.wrl#Würfel”
}
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 55 Vers. 26-Apr-01
Aufbau von VRML - Dateien (II)
• VRML - Header
• Kommentare
• Prototyp - Definitionen
• Knoten und Felder
• Routen
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 56 Vers. 26-Apr-01
Java3D und VRML
• Ähnlichkeiten:– Szenengraphmodell– Java Klassen zur Repräsentation von Nodes
etc.• Unterschiede:
– Kein Routing, sondern Java Events– Java3D legt kein Geometrieformat fest– Java3D ist mächtiger
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 57 Vers. 26-Apr-01
Informationsressource: WWW (I)
• VRML Konsortium Homepagehttp://www.web3d.org/Gesellschaft mit dem Ziel der Standar-disierung und Verbreitung von VRML
• VRML Repositoryhttp://www.sdsc.edu/vrml/Sehr gute, umfassende Zusammenstellungvon Verweisen zum Thema VRML
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 58 Vers. 26-Apr-01
Informationsressource: WWW (II)
• ParallelGraphicshttp://www.parallelgraphics.comWichtiger VRML-Browser Hersteller (1)
• blaxxun interactivehttp://www.blaxxun.deWichtiger VRML-Browser Hersteller (2)
• Javasoft Homepagehttp://www.javasoft.com/Wichtige Informationsquelle zu Java
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 59 Vers. 26-Apr-01
Informationsressource: WWW (III)
• Xj3D http://www.web3D.org/TaskGroups/source/xj3d.htmlEnthält auch VRML97 Loader für Java3D
• Java API Spezifikationhttp://java.sun.com/products/jdk/1.1/docs/siehe Java Platform Core API
• The Mining Companyhttp://vrml.miningco.com/Grosses Repository
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 60 Vers. 26-Apr-01
Informationsressource: Mailinglist
• Wichtigste allgemeine Mailingliste:majordomo@web3d.orgsubscribe www-vrml
• Liste spezielle zum Thema Scripting:majordomo@sdsc.edusubscribe vrml-behaviors
• VRML Benutzergruppe (dt.):http://www.inexnet.de/ger-vrml/
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 61 Vers. 26-Apr-01
Informationsressource: Buch (I)
• VRML 2.0 Source BookAmes, Nadeau, MorelandWiley, 1996
• Annotated VRML Reference ManualBell, CareyAddison-Wesley, 1997
• Teach Yourself VRML in 21 DaysMarrin, CampbellSAMS Net, 1997
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 62 Vers. 26-Apr-01
Informationsressource: Buch (II)
• The VRML 2.0 HandbookHartman, WerneckeAddison-Wesley, 1996
• Late Night VRML 2.0 with JavaRoehl, Couch et al.ZD Press, 1997
• VRML 97 (dt.)Addison-Wesley, 1997
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 63 Vers. 26-Apr-01
Informationsressource: Buch (III)
• JAVA for 3D and VRML WorldsLea, Matsuda, MiyashitaNew Riders, 1996
• JAVA 1.1 für Insider (dt.)MorrisonSAMS, 1997
• JAVA 1.1 in a Nutshell (dt.)O’Reilly, 1997
Computergraphik mit VRML / 2001SS GDVC. Seiler Folie 64 Vers. 26-Apr-01
Fragen & Kommentare