Upload
nguyenthien
View
213
Download
0
Embed Size (px)
Citation preview
27.03.2006Virtual Reality: Modellierung virtueller Welten
Virtual RealityModellierung virtueller Welten
Prof. Dr. Andreas HenrichLehrstuhl für MedieninformatikFakultät für Wirtschaftsinformatik und Angewandte InformatikOtto-Friedrich-Universität Bamberg, 96045 BambergTelefon: 0951 863 2850 oder 2851 (Sekretariat)Email: [email protected]: http://www.uni-bamberg.de/wiai/minf
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 2)
Gliederung
1. Einordnung "Virtuelle Welten"2. Grundlagen und Hintergründe3. Möglichkeiten zur Erstellung von 3D-Modellen4. Farbe, Licht und Schatten5. Virtual Reality und VRML
1. Überblick VRML2. Einfache Grundelemente3. Gruppieren von Knoten4. Lichtquellen5. Ereignisse und Aktionen6. Weiterführende Aspekte
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 3)
1. Einordnung "Virtuelle Welten"
Abgrenzung: Bilder ↔ Grafiken
digitales Bild besteht aus N Zeilen mit je M Bildpunktenden sog. Pixeln (engl. Picture Element)Bild kann aus der realen Welt stammen oder virtuell sein
(Vektor-)Grafiken: durch grafische Primitive und ihre Attribute spezifiziertPrimitive 2D = Linien, Rechtecke, Kreise, Ellipsen, Texte SVG, …Primitive 3D = Polyeder, Kugeln, ... VRML, X3D, …Attribute = Stil der Linien, Breite und Farbe
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 4)
3D-Animation
Ziele:Virtual RealityDefinition von realitätsnahen 3D-Welten, in denen man sich bewegen kann (Stichwort: Immersion)
Phasen der 3D-AnimationModelingShading & MappingLightning & RenderingAnimation
(nac
h U. N
ikolau
s: Un
i Reg
ensb
urg,
Lehr
st. fü
r Wirts
chaft
sinf. I
II Vor
lesun
gsun
terlag
en M
ultim
edia
I, 199
7)
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 5)
2. Grundlagen und HintergründeRolle der Computergrafik
Umwandlung der mathematischen oder geometrischen Beschreibung eines Objekts in eine Visualisierung, die die Erscheinung eines realen Objekts simuliert.
Computergrafikmodell 2D-Projektion / Visualisierung
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 6)
Teilaspekte der Computergrafik
mathematische Grundlagen der ComputergrafikBeschreibung und Modellierung von dreidimensionalen ObjektenDarstellung und Renderingdie Grafik-PipelineReflexionsmodelleBeleuchtungdie Radiosity-MethodeTechniken des Ray TracingsVolumen-RenderingFarben in ComputergrafikenImage-Based RenderingFoto-ModellierungComputeranimation
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 7)
Die Grafik-PipelineEine 3D Rendering-Pipeline
ein Fortschreiten durch verschiedene 3D-Räume
Objekt-definition
LokalerKoordinatenraum
Komponieren der Szene
Festlegen derBeleuchtung
Festlegen des Bezugs zur
Blickrichtung
Welt-koordinatenraum
Entfernen vonRückseiten
Ansichtsraum
Entfernenverdeckter Oberflächen
Zurechtschnei-den auf das drei-
dimensionaleSichtvolumen
RasternSchattieren
DreidimensionalerBildschirmraum
Anzeigeraum(2D)
Modell-Transformation
Ansichts-Transformation
geometrische Verfahren algorithmische Verfahren
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 8)
Ein Ansichtssystem
Die Mindestanforderungen für ein funktionierendes Ansichtssystem
a) Blickpunkt C und Blickrichtung Nb) Eine Ansichtsebene, normal zur
(Senkrecht auf) Blickrichtung N, d Einheiten von C entfernt
c) Ein Ansichtskoordinatensystem mit dem Ursprung C und den Achsen UV in einer Ebene parallel zur Ansichtsebene
d) Ein Sichtvolumen, festgelegt durch den Pyramidenstumpf, der von C und dem Fenster der Ansichtsebene gebildet wird
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 9)
Projektion auf einen gedachten Bildschrim
nach: D. Jackèl, ICG
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 10)
Mathematische Grundlagen
Für Modellierung wichtig:Manipulation dreidimensionaler Strukturen
Transformationen als wichtiges WerkzeugTranslation (Verschiebung), Skalierung und Rotation
populärste Methode zur Darstellung eines Objekts: Polygon-Netzmodell
Oberfläche eines Objekts: Menge verbundener planarer PolygonePolygon-Netzmodell besteht aus einer Struktur von Punktenjeder Punkt ist ein drei-dimensionaler Punkt im Objektkoordinatensystem
für den Anfang sehen wir Objekte einfach als eine Menge dreidimensionaler Punkte
⇒ Frage: Wie können diese im dreidimensionalen Raum durch lineare Transformationen verändert werden?
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 11)
Einfache Transformationen
Objekte werden häufig zunächst in einem Objektkoordinatensystemdefiniert
sie können dann durch eine Transformation in das Weltkoordinatensystemüberführt werdenVorteil: Definition des Objektes unabhängig von endgültiger Position, Größe und Orientierung
Transformation in ein anderes Koordinatensystem als Transformation der Eckpunkte:
Gegeben sei ein Punkt:
Translation:Skalierung:Rotation:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
zyx
V
VRV'VSV'
DVV'
⋅=⋅=+= Translationsvektor
Skalierungsmatrix
Rotationsmatrix
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 12)
Beispiele (2D)
Translation: Verschieben um 3 in X-Richtung
Skalierung: doppelt so groß in X- und halb so groß in Y-Richtung
Rotation: um 30°
⎥⎦
⎤⎢⎣
⎡=
53
V ⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡+⎥
⎦
⎤⎢⎣
⎡=
56
03
53
'V
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⋅⎥⎦
⎤⎢⎣
⎡=
5,26
53
5,0002
'V
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡⋅⎥⎦
⎤⎢⎣
⎡ −=⎥
⎦
⎤⎢⎣
⎡⋅⎥⎦
⎤⎢⎣
⎡ −=
83,5098,0
53
866,05,05,0866,0
53
)30cos()30sin()30sin()30cos(
'V
30°
×2×0,5
es handelt sich jeweils um eine Translation, Skalierung, Rotation aller Punkte! ⇒ Translation, Skalierung, Rotation des gesamten Koordinatensystems!
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 13)
3. Möglichkeiten zur Erstellung von 3D-Modellen
3D Digitalisierer auf Basis vonAufnahme einzelner PunkteSerie von 2D-Bilder von kontrollierten StandpunktenLaserscanner
3D Software
http://www.vihap3d.org/downloads/engel.mpg
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 14)
3D Digitalisierer
Aufnahme von Punkten im 3D-RaumGenauigkeit der Mechanik und der Sensorik bestimmt Qualität des ErgebnissesProblem:
Punkte müssen einzeln abgenommen werden!Resultat ist „nur“ ein Gittermodell
Vorteil: Punkte können gezielt abgenommen werdenFolge: Die Modelle bleiben kompakt
Einschränkungen:GenauigkeitGröße des erfassbaren Gegenstands
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 15)
Digitalisierung aufgrund von Bildern
Olympus 3D ScanTop
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 16)
Wie geht das?
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 17)
Laserscanner
The VI-910 is designed for: Reverse Engineering and CAE/ CAD Industrial and Mechanical Design Inspection and Verification of parts or moldsDigital Mock-up Rapid Prototyping
The VI-910 has multiple applications:Architecture Cultural Heritage/Restoration/ArcheologyDental surgery, cosmetic surgery Education Entertainment/Computer Graphics/Animation Forensic Medicine, Ergonomics Mold making, plastics Museum archiving Research institutes
Farbe durch Filter möglich
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 18)
3D-Software
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 19)
4. Farbe, Licht und Schatten
räumlicher Eindruck und Realitätsnähe entstehen durch Perspektive, Schatten, Lichtreflektionen, Spiegelungen
Beispiele für Überlegungen hierzu:1. Wie können wir das von einem beliebigen Punkt auf der
Objektoberfläche reflektierte Licht berechnen?➨ „lokale Reflexionsmodelle“
2. Wie können wir daraus die Lichtintensität der Pixel berechnen, auf die das Polygon projiziert wird?➨ „Schattierungsalgorithmen“
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 20)
lokale Reflexionsmodelle ↔Schattierungsalgorithmen
Lokale Reflexionsmodelle berechnen die Lichtintensität in
irgendeinem Punkt P auf der Oberfläche eines Objekts
Schattierungsalgorithmen interpolieren Pixelwerte aus
berechneten Lichtintensitäten an Polygonpunkten
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 21)
Schattieren von Pixeln
Die von jedem Punkt auf der Objektoberfläche reflektierte Lichtintensität ist eine Berechnung im Welt- oder gar Ansichtskoordinatenraum.Wir gründen sie auf die Ausrichtung der Oberfläche in Bezug zu einer Lichtquelle und ggf. zum Betrachter.
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 22)
Lokale ReflexionsmodelleZiel:
Berechnung der von einem Punkt auf der Oberfläche eines Objekts reflektierten Lichtintensität.
einfaches Modell:Ermittlung der Intensität des reflektierten Lichts als Funktion
der Oberflächeneigenschaften und der Oberflächenausrichtung im betrachteten Punkt in Bezug auf die Position einer Punktlichtquelle.
lokales Reflexions-modell, weil es nur die direkte Beleuch-tung berücksichtigt.
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 23)
Lokale Reflexionsmodelle
Die vom Modell simulierten physika-lischen Reflexions-phänomene:
Ideale spekulareReflexion (a)Reale spekulareReflexion (b)Ideale diffuseReflexion (c)
Punktlichtquelle, die einen dünnen
Lichtstrahl auf einen Punkt
einer Oberfläche aussendet
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 24)
Berechnung des reflektierten Lichtes
ideale spekulare Reflexion wenn einfallendes Licht - ohne Abweichung - in die „gespiegelte“ Richtung reflektiert wird (tritt in der Praxis nicht auf)
reale spekulare Reflexion wenn ein dünner Lichtstrahl auf einen realen Spiegel trifft, dessen Oberfläche physisch rau ist
ideal diffuse Oberfläche reflektiert das Licht gleichmäßig in alle Richtungen (matte Oberfläche)
Reflexionsmodell von Phong die Reflexion einer Oberfläche besteht aus drei linear kombinierten Komponenten:
Reflektiertes Licht = Umgebungslicht + diffuse Komponente + spekulare Komponente
Umgebungslicht simuliert die globale oder indirekte Beleuchtung. Ohne Umgebungslicht würden nicht direkt angestrahlte Flächen schwarz gerendert.
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 25)
Berechnung der Intensität
Wir erhalten für das reflektierte Licht(ambient [umgebend] = a):
Ausmaße (Einfluss) der drei Komponenten durch Konstanten gesteuert:
Sei:Ii die Intensität des einfallenden Lichtsθ der Winkel zwischen der Oberflächennormale im betrachteten Punkt und der Richtung der Lichtquelle
dann berechnen wir Id (diffuse Kompo.) als:
ssddaa IkIkIkI ⋅+⋅+⋅=
1=++ sda kkk
θcos⋅= id II ( )NL ⋅⋅= id IIoder in Vektorschreibweise
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 26)
eine Frage des Blickwinkels
spekulare Reflexion ist physisch ein Abbild der Lichtquelle, das über einen Bereich der Oberfläche „verschmiert" ist
ruft das so genannte „Glanzlicht“ hervor
Glanzlicht wird von einem Betrachter nur gesehen, wenn die Blickrichtung nahe an der Spiegelrichtung liegt. Spekulare Reflexion simulieren wir daher durch:
Dabei ist:Ω der Winkel zwischen der Blickrichtung und der Spiegelrichtung Rn ein Index, der den Grad der Unvollkommenheit einer Oberfläche simuliertn = ∞: die Oberfläche ist ein idealer Spiegel
Ω⋅= nis II cos ( )nis II VR ⋅⋅=oder in Vektorschreibweise
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 27)
Die zusammengesetzte Formel
Zusammenführen der Ausdrücke ergibt:
Lichtintensität in einem einzelnen Punkt P als eine Funktion der Orientierung des Ansichtsvektors V.
Halbkreis = Summe des Umgebungsterms und des diffusen Terms, der für einen bestimmten Wert von N konstant ist.
( ) ( )( )nsdiaa kkIIkI VRNL ⋅⋅+⋅⋅+⋅=
Radius ( Abstand zu P ) = Wert von I
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 28)
( ) ( )( )( ) ( )( )( ) ( )( )n
sbdbiaab
nsgdgiaag
nsrdriaar
kkIIkI
kkIIkI
kkIIkI
VRNL
VRNL
VRNL
⋅⋅+⋅⋅+⋅=
⋅⋅+⋅⋅+⋅=
⋅⋅+⋅⋅+⋅=
Farben in VRMLzusätzliche additive Komponente,
die ohne Lichtquelle aktiv ist
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 29)
Schattierung durch Interpolation
bisher: Berechnung von Lichtintensitäten in einem Punktjetzt: Anwendung auf ein Polygon und Berechnung der Lichtintensität über seine Oberfläche
zwei klassische Methoden:Gouraud-Schattierung und
Phong-Schattierung
Ziele beider Methoden:effiziente Interpolation von Informationen über das Aussehen eines Polygons
Verminderung der Sichtbarkeit von Polygonkanten im endgültig schattierten Bild
Ausgangspunkt sind jeweils die "Ecknormalen"
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 30)
Unterschied Gouraud- und Phong-Methode
Bei Gouraud (a) werden die berechneten Intensitätswerte interpoliertBei Phong (b) werden die Normalenvektoren interpoliert und jeweils eine neue Berechnung er Intensität vorgenommen
Gouraud:
Phong:
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 31)
Ray Tracing
globales Beleuchtungsmodellbezieht die indirekte Beleuchtung mit ein!
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 32)
Grundprinzip des Ray Tracing
die 3D-Objekte einer Szene werden hier im Ansichtsraum betrachtet:
im Ansichtsraum können die Beleuchtungsphänomene geometrisch undz.T. auch physikalisch berechnet werden
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 33)
Grundprinzip des Ray Tracing
Ausgangspunkt: Bildraster in der Projektionsebene man erzeugt vom Blickpunkt (Ursprung des Ansichtskoordinatensystems) durch jedes Pixel des Rasters einen StrahlFür jeden Strahl werden die Schnittpunkte mit den Objekten berechnet. Falls der Strahl mehrere Objekte trifft, wird der Schnittpunkt mit dem kleinsten z-Wert genommen
stammt vom sichtbaren Objekt
Man bestimmt nun am Ort des Schnittpunktesdie Normalenrichtung der Oberfläche,den Lichteinfallswinkel sowie den Winkel des Betrachters gegenüber der Normalen.
mit den Materialeigenschaften (Koeffizienten für diffuse und spekulareReflexion) und dem Exponenten n (Shininess) kann die Lichtreflexion nach Phong-Beleuchtungsmodell berechnet werden
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 34)
Erste Einordnung
Ergebnis bei diesem einfachen Ray-Tracing ist identisch mit direktem Phong-Shading
noch ist keine indirekte Beleuchtung berücksichtigt!
Nachteil des Ray Tracing dabei:für jedes Pixel werden relativ aufwendige geometrische Operationengemacht es können keine inkrementellen Verfahren ausgenutzt werden
Vorteile des Ray Tracingkommen erst durch Erweiterungen zum Tragen
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 35)
Rekursives Ray Tracing
Auf Objekt A auftreffender primärer Strahl (1) wird am Auftreffpunkt an der Oberflächennormale gespiegelt. Sekundärer Strahl (2) wird erzeugt. Bei der Spiegelung wird ein prozentualer Anteil der spekularen Reflexion bestimmt Strahl 2 wird verfolgt und trifft hier auf ein weiteres Objekt BDort werden wieder die spekulare und diffuse Reflexion von der Lichtquelle nach Phongberechnet und
mit dem prozentualen Anteil der spekularenReflexion beim Objekt A zum Farbwert des Pixels P addiert!
„durch“ ein bestimmtes Pixel P
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 36)
Schatteneffekte
können beim Ray Tracing berechnet werden
von den Schnittpunkten der Strahlen mit den Objekten wird eine Gerade zur Lichtquelleverfolgt (Schattenfühler S)
findet man z.B. auf dem Weg von A zur Lichtquelle einen Schnittpunkt des Schattenfühlers Sa mit einem Objekt C, ist der Weg des Lichts blockiert
Folge: diese Lichtquelle trägt nicht zum Farbwert des Pixels bei
d.h. es entsteht ein Schatten von C auf A
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 37)
Brechungseffekt
kann beim Ray Tracing ebenfalls berücksichtigt werden
Entsprechend Einfallswinkel, Normalenvektor und Brechungsfaktor wird die Richtung des gebrochenen Strahls berechnet
So können Verzerrungen simuliert werden
entstehen z.B. bei einer Linse oder einem Wasserglas
Ist ein Material reflektierend und transparent, müssen beim Schnittpunkt zwei Sekundärstrahlen berechnet werden
gebrochener Strahl und reflektierter Strahl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 38)
Monte-Carlo-Ray-TracingProblem bisher: nur ideale spekulare Reflexion betrachtet
reicht für anspruchsvolle realistische Darstellungen nicht
Monte-Carlo-Ray-Tracing:bei jeder Reflexion wird eine Menge von mehreren zufällig in verschiedene Richtungen gestreuten Strahlen verfolgtder Beitrag der gestreuten Strahlen wird mit der statistischen Häufigkeit des jeweiligen Strahls gewichtetdazu braucht man eine Verteilungskurveim Reflexionsmodell
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 39)
Beispiele
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 40)
5. Virtual Reality und VRML
Typische Anwendungsgebiete:Visualisierung großer oder komplexer Informationsmengen z.B. aus Datenbanken. Simulation komplexer physikalischer, technischer, chemischer oder biomedizinischer Abläufe.
z.B. Darstellung der dreidimensionalen Struktur von Molekülen
Marketing und Information über Produkte
Eine virtuelle Welt (auch Virtual Reality(VR)-Objekt genannt) ist ein abstraktes Modell einer dreidimensionalen Szene, welches aus wechselnden virtuellen Ansichten betrachtet werden kann.
http://www.fbi-medialab.fh-karlsruhe.de/projects/Campus3D/index.html
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 41)
Virtual Reality & 3D Grafik
weitere AnwendungsgebieteGeo- und Rauminformationssysteme, z.B. in Bauplanung und Architektur.Zusammenarbeit von Entwicklungsingenieuren (Collaborative Engineering).Medienkunst in entsprechend ausgerüsteten Museen. Unterhaltung und Spiele
Im Folgenden:zunächst einige grundlegende Arbeitsweisen und Software für die 3D-Modellierungdann: Betrachtung der Virtual Reality Modeling Language VRML
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 42)
5.1 Übersicht VRML
Charakteristische Merkmale von VRML 2.0:Plattformunabhängigkeit: Die Beschreibungsdaten liegen im ASCII-Format vor.Dynamik: Die in VRML beschriebenen Welten können Animationen enthalten.Interaktivität: VRML eröffnet Interaktionsmöglichkeiten zwischen Betrachter und der modellierten Umgebung.Mehrdimensionalität: In VRML werden 2D- und 3D-Objekte miteinander verbunden, durch die Animation kommt eine vierte Dimension hinzu.Multimedialität: In VRML-Welten können Videos, Bilddaten, Klänge etc. eingebunden werden.
Diese Vorteile gegenüber proprietären VR-Lösungen werden jedoch mit Nachteilen erkauft.
VRML ist eine einfache Sprache zur Beschreibung von 3D-Objekten und Umgebungen, also von virtuellen Welten. Die
VRML-Daten werden von VRML-Browsern interpretiert und in eine 2D-Darstellung umgerechnet (gerendert).
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 43)
VRML
Nachteile von VRML:Geringe Geschwindigkeit: VRML-Darstellung mit den gängigen Browsern kann nicht mit proprietären VR-Lösungen konkurrieren.
Szenen werden häufig auf bestimmte VRML-Browser optimiert.
Die Skriptknoten in VRML zur Realisation der Interaktivität sind umständlich zu programmieren.
Das EAI (External Authoring Interface) ist nicht vollständig standardisiert.
Gängige VRML-Browser sind weitgehend frei erhältlich als:Plugins für Web-Browser, z.B. als Cosmoplayer (SGI-Tochter CosmoSoftware), WorldView (Intervista Inc.), Community Place (Sony), …
ActiveX Controls
VRML Bibliotheken
Standalone VRML Browser
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 44)
Quellen
Die folgenden Folien basieren auf:Henning, Peter A.: Taschenbuch Multimedia, 2. Auflage, Fachbuchverlag Leipzig im Carl Hanser Verlag, 2001, Kapitel 13
David R. Nadeau, San Diego Supercomputer Center; John L. Moreland, San Diego Supercomputer Center; Mike M. Heck; Template Graphics Software, Inc.: Introduction to VRML 2.0 (http://www.sdsc.edu/siggraph96vrml/)
Als VRML Player wurden genutzt:Computer Associates International, Inc: Cosmo Player http://www.cai.com/cosmo/
ParallelGraphics, Cortona VRML Client: http://www.parallelgraphics.com/products/cortona/
Als VRML Editor wurde genutzt:VrmlPad von ParallelGraphics, Dublin, Ireland (http://www.parallelgraphics.com/products/vrmlpad/)
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 45)
5.2 Einfache Grundelemente
Knoten (Shape, Cylinder, Appearance, Material) enthalten mit { } gruppierte FelderFelder (kleingeschrieben) bekommen Inhalte zugewiesen,
das können Skalare, Vektoren, Knoten u.a. sein
Cylinder.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 46)
Positionsangaben
Alle Objekte werden auf den Nullpunkt des Koordinatensystems zentriert:
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 47)
VRML-Geometrien
einfache Geometrienbox cone cylinder sphere text
komplexe GeometrienIndexedFaceSet ElevationGrid Extrusion
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 48)
Ein ElevationGrid
Gedacht zur Darstellung vonGebirgsregionen, Wasseroberflächen, Planetenoberflächen, ...
Vorgabe des Gitters!
Angabe der Höhen an den Gitterpunkten!
ElevationGrid1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 49)
Ein IndexedFaceSet
Definition der Punkte!
Definition der Flächen!
Vase mit creaseAngle = 2
vase1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 50)
Durchsichtigkeit von Flächen
Als Default sind Flächen von hinten immer durchsichtig!Es gilt die Regel der rechten Hand:
wenn man die Kanten einer Fläche entlang läuft, zeigt die Handinnenfläche nach innenVon außen hat die Fläche die definierten Eigenschaften (Farbe, Textur, …)Von innen ist sie durchsichtig
Beispiel:zwei verschachtelte Boxen:
sobald man sich in die eine hineinbewegt, sieht man nur noch die andere, weil die Hülle der Boxen ja von innen durchsichtig ist!
IFScolor.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 51)
5.3 Gruppieren von Knoten
VRML kennt verschiedene gruppierende Knoten:Group { . . . }
„einfache“ Gruppierung mehrerer KnotenSwitch { . . . }
von den gruppierten Knoten wird jeweils nur ein ausgewählter angezeigt (z.B. bei Interaktion nützlich)
Transform { . . . }definiert für eine Gruppe von Knoten ein neues Koordinatensystem, das zum umgebenden verschoben, rotiert und skaliert sein kann
Billboard { . . . } ähnlich Transform, aber die Objekte werden nach Definition automatisch zum Betrachter orientiert
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 52)
Transformation
alles relativ zum Nullpunkt!
alles relativ zum neuen Koordinatensystem!
Transform1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 53)
Billboard
Drehung des lokalen Koordinatensystems, so
dass nur die y-Achse festgehalten wird.
Billboard1.wrl
Ein anderes Beispiel (robobill.wrl):
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 54)
Farbe und TexturWerden im Appearance Knoten geregelt; Felder:
materialambientIntensity (Zahl): Bruchteil der Reflexion von ungerichtetem UmgebungslichtdiffuseColor (3 Zahlen): Farbe, unter der ein Objekt bei Bestrahlung mit weißem LichterscheintemissiveColor (3 Zahlen): Farbe, unter der ein Objekt unabhängig von der Beleuchtung erscheintspecularColor (3 Zahlen): Farbe unter welcher spiegelnde Reflexion vom Objekt erscheint (z.B. auf einem glatten Boden)shininess (Zahl): Spiegelungsexponenttransparency (Zahl): Durchsichtigkeit
texturez.B. Nutzung eines Bildes als Textur (aber auch über pixelweise Definition oder durch Filme)
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 55)
Beispiel
Appearance1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 56)
Farben bei komplexen Gebilden
IFScolor.wrl
Wird durch die Farben unten überschrieben.
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 57)
Texte & Hintergrundfarbe
Texte sind immer „flach“
Text1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 58)
Einfügen von „Welten“ durch Inline
Gegeben sei eine VRML-Datei „chair.wrl“ mit einem Stuhl und eine VRML-Datei „table.wrl“ mit einem Tisch
Dann kann man leicht eine Essgruppe bilden:
dinette.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 59)
Mit einem Anker in eine andere Welt springen
Wohin soll die Reise gehen?
Wird später eines der Kinder angeklickt, springt man in die andere Welt?
anchor.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 60)
5.4 Lichtquellen
Arten von Lichtquellen:PointLight
haben einen Ursprung und strahlen rundum Licht ab
DirectionalLightstrahlt auf der ganzen Breite aus einer definierten Richtung
SpotLight wie PointLight, ist aber auf einen Abstrahlungskegel begrenzt
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 61)
Beispiel für einen Spot
Definition zur Wiederverwendung
Nutzung
Beleuchtung.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 62)
Anwendung von Lichtquellen
Gemeinsam mit den Materialeigenschaften lassen sich mit Lichtquellen viele Effekte erzielen
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 63)
5.5 Ereignisse und Aktionen
Ereignisse (Events) = Nachrichten, die einen Datenwert enthalten
ein Ereignis hat einen bestimmten Datentyp (z.B. SFTime)set_ event: verändert einen Knoten wenn der die Nachricht erhält
Beispiel: set_startTime _changed event: wird verschickt, wenn sich ein Knoten ändert
Beispiel: position_changed
VRML-Datentypen: (SF = single field, MF = multiple field)
SFBool SFRotation / MFRotation SFInt32 / MFInt32
SFColor / MFColor SFString / MFString SFnode / MFNode
SFFloat / MFFloat SFTime SFVec3f / MFVec3f
SFImage SFVec2f / MFVec2f
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 64)
Felder und Ereignisse
Jeder Knoten(-typ) hat spezifische Felder und Ereignisse:Field: Ein gespeicherter Wert (Parameter), z.B. url EventIn: Ein Ereignis, das der Knoten entgegennehmen kann, z.B. set_urlEventOut: Ein Ereignis, das der Knoten senden kann, z.B. url_changed Hinweis: ExposedField definiert alle drei
Eine abstrakte Sicht auf Felder und Ereignisse:
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 65)
Beispiel: Collision Node
Einige spezielle Felder und Ereignisse von Collision Knoten:
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 66)
Routes
Routen verbinden einen EventOut mit einem EventInEine Route ist kein Knoten! Der Ausgabetyp und der Eingabetyp müssen exakt übereinstimmenEine Ausgabe kann mit mehreren Eingaben verbunden sein (fan-out) Mehrere Ausgaben können mit einer Eingabe verbunden sein (fan-in)
Knoten müssen benannt werden um in Routen verwendet zu werden!Beispiel: Eine Kollision löst einen Sound aus
ROUTE Node1.collideTime TO Node2.startTime
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 67)
Beispiel
KollisionSound.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 68)
Sensorknoten für den Betrachter
Knoten, die auf „Benutzerbewegungen“ reagierenWenn dieser die „Welt“ betrittWenn dieser eine bestimmte Region um ein Objekt betrittDie Position und Ausrichtung innerhalb einer Region
ProximitySensorErzeugt Ereignisse, wenn der Viewpoint:
die Region betritt: SFTime enterTime die Region verlässt: SFTime exitTime sich innerhalb der Region bewegt:
SFVec3f position_changed SFRotation orientation_changed
Definition: ProximitySensor { center 0 0 0 size 1 1 1 }
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 69)
Andere Knoten, die den Betrachter überwachen
LOD (Level Of Detail): zeigt in Abhängigkeit von der Entfernung verschieden detaillierte ObjekteEreignisse werden dabei nicht explizit erzeugt
VisibilitySensor:Überwacht, ob eine bestimmte Region für den Betrachter sichtbar istEreignisse: isActive, enterTime, exitTime
Collision: überwacht Kollisionen des Betrachters mit ObjektenEreignis: SFTime collideTime
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 70)
Reagieren auf Benutzeraktionen
Motivation: Der Benutzer kannauf Dinge zeigen,Buttons drücken und loslassenmit einem gedrückten Button Dinge bewegen
TouchSensor-EreignisseDer Zeiger ist auf dem Objekt: SFBool isOver Button press/release:
SFBool isActive SFTime touchTime (on ButtonUp)
Pointer dragged over geometry: SFVec3f hitPoint_changed SFVec3f hitNormal_changed SFVec2f hitTexCoord_changed
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 71)
Beispiel für TouchSensor
direction
maxbackmaxfrontminbackminfront
location
TouchSensor1.wrl
Felder von Sound
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 72)
Andere Knoten zur „Beobachtung“ des Nutzers
Anchor:zum Springen in eine andere VRML-Welt (erzeugt implizite Aktionen)
CylinderSensor:Hier werden die Cursorbewegungen auf eine Drehung einer ZylinderflächeabgebildetDie Zylinderachse liegt parallel zur lokalen y-Achse
PlaneSensor:bildet Bewegungen in Verschiebungen in der xy-Ebene ab
SphereSensor: bildet Bewegungen auf eine generelle Rotation um das Zentrum des Sensors ab
Sensoren sind keine gruppierenden KnotenSie lösen Ereignisse auf der „geometry“ von Geschwisterknoten ausWenn Objekte überlappen wird das am nächsten gelegene Objekt genutztDer Sensor der am „niedrigsten“ im Objektgraph liegt sendet das EreignisMehrere Sensoren können gleichzeitig Ereignisse senden
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 73)
Beispiel:
Sensoren1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 74)
5.6 Weiterführende Aspekte
ZeitZeit kann verwendet werden, um Animationen zu steuern
InterpolationPositionen können interpoliert werdenInterpolating Other Data Types
Nutzung von Skriptsprachen, …Innerhalb von VRML können Skriptsprachen genutzt werdenEin Beispiel ist JavaScript
Erzeugung neuer KnotentypenMan kann eigene neue Knotentypen definieren
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 75)
Nutzung der Zeit
Zeitverlauf.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 76)
Interpolation
VRML-Interpolatoren dienen der Manipulation von Objekten durchPositionsänderung (OrientationInterpolator, PositionInterpolator)Verformung (CoordinateInterpolator)Farbänderung (ColorInterpolator)Animation (ScalarInterpolator)Änderung der Oberflächennormale (NormalInterpolator).
Die Interpolator-Knoten enthalten jeweilseine Liste von Schlüsseln (z.B. im Bereich 0...1) und zugeordnete Datenwerte
Funktionsweise:Knoten sendet einen beliebigen Wert aus dem Schlüsselintervall an das eventIn-Feld des Interpolators
⇒ dieser reagiert mit einem aus den Datenwerten interpolierten Zwischenwert
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 77)
Beispiel Interpolator
Definition des zu drehenden Objekts
Der Timer liefert die Werte zwischen 0 und 1
In den ersten drei Werten wird die Achse und im letzten die
Drehung um die Achse definiert
Interpolation1.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 78)
Nutzung eines Scripts
sine.wrl
27.03.2006
Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 79)
Erzeugen neuer Knotentypen
Durch PROTO Definitionen können neue Knotentypen deklariert werden: Der neue Typ erhält einen Namen undFelder und Ereignisse, die die Schnittstelle des Prototyps bilden
Beispiel:
Robots können dann später genau so genutzt werden, wie Spheres