80
27.03.2006 Virtual Reality: Modellierung virtueller Welten Virtual Reality Modellierung virtueller Welten Prof. Dr. Andreas Henrich Lehrstuhl für Medieninformatik Fakultät für Wirtschaftsinformatik und Angewandte Informatik Otto-Friedrich-Universität Bamberg, 96045 Bamberg Telefon: 0951 863 2850 oder 2851 (Sekretariat) Email: [email protected] WWW: http://www.uni-bamberg.de/wiai/minf

Rechner- und Betriebssysteme · die Radiosity-Methode ... Polygon-Netzmodell besteht aus einer Struktur von Punkten jeder Punkt ist ein drei-dimensionaler Punktim Objektkoordinatensystem

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

27.03.2006

Prof. Dr. Andreas Henrich – Virtual Reality: Modellierung virtueller Welten (S. 80)

Ein einfacher Prototyp

Prototyp1.wrl