Virtuelle Realität

Entwicklungsprozess und Geometrie-Modellierung

Dr. Thies Pfeiffer

AG Wissensbasierte Systeme, Technische Fakultät, Universität Bielefeld

Termin: Freitags, 10:15 Uhr

Raum: S2-121

Überblick

Inhalte dieser Veranstaltung

  • Entwicklungsprozess einer VR Installation
  • Geometrie-Modellierung

Entwicklungsprozess einer VR Installation

  • Analyse des Simulationsgegenstandes (fachlicher Prozess)
  • Festlegung der Projektions- und Sensortechnik ($\to$ Termine 03 bis 05)
  • Auswahl des Software-Frameworks ($\to$ Termin 13)
  • Geometrische Modellierung ($\to$ heute)
  • Funktionale Modellierung ($\to$ Termin 05)
    • Kausalketten
    • Physikalische Modellierung ($\to$ Termin 10)
  • Modellierung der Interaktion ($\to$ Termine 06 bis 09)
  • Evaluation ($\to$ Termine 06 und 12)

Geometrische Modellierung

Prozessablauf

Geometrie-Modellierung


Die Modellierung der Welt

Die ersten Schritte in die Virtuelle Realität. Vielleicht eine kleine Anspielung auf den Titel des Romans Die Vermessung der Welt von Daniel Kehlmann (Rowohlt, 2005). Denn auf dem Weg zu einem Abbild der Realität gilt es erst einmal, diese zu vermessen.

Geometrie-Modellierung

  • Basis der meisten Anwendungen für Virtuelle Realität
  • Abstraktion der Realität durch die Modellierung von Objekten
  • Techniken:
    • Objekt-Oberflächen
    • Bikubische parametrische Patches
    • Objekt-Volumen (Volume Rendering)
    • Constructive Solid Geometry
    • Implizite Darstellung (z.B. Raytracing)
    • Landschaften (Terrain)

Modellierung im Euklidischen Raum

  • Axiomatische Darstellung des Euklidischen Raumes durch David Hilbert
  • Einführung von Punkt, Linie, Gerade, Ebene, Winkel, etc.
  • Die Konzepte werden anschaulich eingeführt (könnte man mit Zeichnungen darstellen)
  • Mit der Euklidischen Geometrie lassen sich die Objekte der Realität abstrakt, aber rein visuell darstellen.

Wie macht man Geometrie berechenbar?

  • Affiner Raum: Mathematisches Modell des realen Anschauungsraumes
  • Vektorraum: algebraische Struktur der Linearen Algebra über einem Körper $(\mathrm{K},+,\cdot)$
    • Vektoren: Tupel von Skalaren (Koordinaten), z.B. $(x,y,z)$ im $\Re^3$
    • Skalare (Skalare Multiplikation $\star:K \times V \to V$)
    • Matrizen $\left( \begin{array}{ccc}a & b & c\\ d & e & f\\ g & h & i\end{array}\right)$
  • Affiner Punkt-Raum und Vektorraum der Verschiebungsvektoren kann synonym verwendet werden, falls im Affinen Punkt-Raum ein Ursprung festgelegt wird.
  • Durch die formale Modellierung wird genau beschrieben, was gerechnet werden kann, dies wird systematisch, z.B. durch den Bezug auf den Körper und abelsche Gruppen, aufgebaut.
  • Durch die algebraischen Hilfsmittel werden geometrische Probleme rechnerisch lösbar, und damit auch im Computer darstellbar.

Wie repräsentiert man Geometrien im Computer?

X3D - eXtensible 3D

  • X3D wird für die Beispiele in der Vorlesung und die Übungen verwendet.
  • Nachfolger von VRML, verwaltet und entwickelt vom web3D
  • Erste Version verabschieded 2001 vom W3C, ISO Standard seit 2004
  • Ziel: Darstellung von 3D Inhalten im Web-Browser
  • Entweder durch Plugins (BS Contact VRML/X3D) oder mittels WebGL (x3dom)
  • Alternativ sind auch Standalone-Browser verfügbar, zum Teil mit Erweiterungen (H3D, InstantReality, Xj3D)
  • In der Vorlesung wird x3dom verwendet und in den Übungen InstantReality

Daten sammeln

Beispiel: Würfel

  • Festlegung eines Koordinatensystems
  • Festlegung des Ursprungs, z.B.
  • ... Mittelpunkt oder Schwerpunkt des Objektes
  • ... natürlicher Auflagepunkt des Objektes
  • Festlegung der Modellierungseinheiten (mm, m)
Einfacher Spielwürfel
Handelsüblicher Würfel

Darstellung von Punkten

Mathematische Formulierung

  • Eckpunkte eines Würfels
  • Vorderseite: $\begin{array}{cc}(-1 \quad 1 \quad 1) & (1 \quad 1 \quad 1)\\ (-1 \quad -1 \quad 1) & (1 \quad -1 \quad 1)\end{array}$
  • Rückseite: $\begin{array}{cc}(-1 \quad 1 \quad -1) & (1 \quad 1 \quad -1)\\ (-1 \quad -1 \quad -1) & (1 \quad -1 \quad -1)\end{array}$

Darstellung von Linien

Mathematische Formulierung

  • Eckpunkte eines Würfels
    • Vorderseite: $\begin{array}{ll}0:(-1 \quad 1 \quad 1) & 1:(1 \quad 1 \quad 1)\\ 2:(-1 \quad -1 \quad 1) & 3:(1 \quad -1 \quad 1)\end{array}$
    • Rückseite: $\begin{array}{ll}4:(-1 \quad 1 \quad -1) & 5:(1 \quad 1 \quad -1)\\ 6:(-1 \quad -1 \quad -1) & 7:(1 \quad -1 \quad -1)\end{array}$
  • Verbindungen der Eckpunkte
    • $0\to1, 0\to2, 1\to3, 2\to3, 4\to5, 4\to6,$ $5\to7, 6\to7, 0\to4, 1\to5, 2\to6, 3\to7$

Darstellung von Flächen

Mathematische Formulierung

  • Verbindungen der Eckpunkte zu Flächen, z.B. jeweils 4 Punkte eine Fläche
    • $0\to2\to3\to1$, $4\to5\to7\to6$, $0\to1\to5\to4$, $2\to6\to7\to3$, $0\to4\to6\to2$, $1\to3\to7\to5$
  • Richtung ist entscheidend! Wird durch die Normale angegeben.
  • Normale steht senkrecht auf der Fläche, positive Richtung gegeben durch Rechte-Hand-Regel (gegen den Uhrzeigersinn zum Betrachter)
    • Die Normale kann für die Bestimmung der Beleuchtung und der Sichtbarkeit verwendet werden.
    • Zeigt die Normale vom Betrachter weg, dann ist die Fläche unsichtbar.

Darstellung von einfachen Körpern

Basis-Primitive können meist parametrisch erzeugt werden

  • Ebene/Plane
  • Quader/Boxes
  • Kugeln/Spheres
  • Zylinder/Cylinder
  • Kegel/Cone
  • ... hier zur Spezifikation in X3D

Komposition von Szenen

Wie lassen sich komplexere Szenen flexibel zusammensetzen?

  • Positionierung von Objekten im Raum über
    • Translation (Verschiebung)
    • Rotation (Drehung)
    • Skalierung (Vergrößerung/Verkleinerung)

Rotation - Richtungskosinusse

  • Eine Rotation kann durch eine Drehung des Koordinatensystems ausgedrückt werden.
  • $\left( \begin{array}{c}x'\\ y'\\ z'\end{array}\right) = \left( \begin{array}{ccc}r_{11} & r_{12} & r_{13}\\ r_{21} & r_{22} & r_{23}\\ r_{31} & r_{32} & r_{33}\\\end{array}\right) \left( \begin{array}{c}x\\ y\\ z\end{array}\right)$
  • Eine Zeile entspricht dabei jeweils den Komponenten des normierten Einheitsvektors der gedrehten Basis.
  • Die Komponenten dieser Einheitsvektoren entsprechen wiederum den Kosinussen der Rotationswinkel.

Rotation - XYZ - Feste Winkel

  • Eine Rotation kann durch drei Drehungen um ein festes Referenzsystem ausgedrückt werden.
  • Oft werden die Drehwinkel als yaw, pitch, roll bezeichnet. In einem Rechtshändigen Koordinatensystem mit vertikaler Y-Achse bedeutet das:
    • yaw: Rotation um die Y-Achse $\left( \begin{array}{ccc}\cos yaw & 0 & \sin yaw\\ 0 & 1 & 0 \\ -\sin yaw & 0 & \cos yaw\\\end{array}\right) $
    • pitch: Rotation um die X-Achse $\left( \begin{array}{ccc}1 & 0 & 0\\ 0 & \cos pitch & -\sin pitch \\ 0 & \sin pitch & \cos pitch\\\end{array}\right) $
    • roll: Rotation um die Z-Achse $\left( \begin{array}{ccc}\cos roll & -\sin roll & 0\\ \sin roll & \cos roll & 0\\ 0 & 0 & 1\\\end{array}\right) $

Wie bildet man Translationen und Skalierungen ab?

Translation

  • Die Werte der 3x3 Matrix werden mit den einzelnen Koordinaten x, y und z multipliziert.
  • Eine konstante Verschiebung kann so nicht erreicht werden.
  • Lösung: Einführung einer weiteren Dimension $\to$ homogene Matrix
  • $\left( \begin{array}{c}x'\\ y'\\ z'\\ 1\end{array}\right) = \left( \begin{array}{ccc}r_{11} & r_{12} & r_{13} & t_{x}\\ r_{21} & r_{22} & r_{23} & t_{y}\\ r_{31} & r_{32} & r_{33} & t_{z}\\0 & 0 & 0 & 1 \end{array}\right) \left( \begin{array}{c}x\\ y\\ z\\ 1\end{array}\right)$
  • Die 1 aus der vierten Position des Vektors wird jeweils mit $t_x$, $t_y$ und $t_z$ multipliziert und somit eine konstante Verschiebung erreicht.

Wie bildet man Translationen und Skalierungen ab?

Skalierung

  • $\left( \begin{array}{c}x'\\ y'\\ z'\\ 1\end{array}\right) = \left( \begin{array}{ccc}s_{x} & 0 & 0 & 0\\ 0 & s_{y} & 0 & 0\\ 0 & 0 & s_z & 0\\0 & 0 & 0 & 1 \end{array}\right) \left( \begin{array}{c}x\\ y\\ z\\ 1\end{array}\right)$
  • Die Werte auf der Diagonalen werden jeweils mit x, y und z multipliziert und damit ist eine Skalierung in jeder Dimension möglich.
  • Neben Translation und Skalierung kann so auch die perspektivische Projektion berechnet werden $\to$ nächste Vorlesung

Komposition von Szenen

Positionierung komplexer Objekte

  • Komposition/Verschachtelung von Transformationen
  • Wie werden Translation/Rotation/Skalierung verrechnet?
  • Zurückbesinnung auf die mathematische Basis:
    • Bei der Komposition werden Koordinatensysteme transformiert.
    • Es handelt sich um Abbildungen im 3D Raum.
    • Diese können als Matrizen dargestellt werden.
    • Matrizen kann man konkatenieren, in dem man sie multipliziert: $M_TM_RM_S * v$

Kommentare

Quaternionen

  • Rotationen werden auch gerne als Quaternionen repräsentiert.
  • $q = (s + xi + yj + zk)$
  • Quaternionen
    • ... sind in Rotationsmatrizen überführbar.
    • ... brauchen nur 4 statt 9 Werte zu speichern
    • ... Rotationsachse direkt angebbar
    • ... keine Konvention über Reihenfolge der Rotationen benötigt
    • ... leichter zu interpolieren
    • ... Multiplizieren von Quaternionen ist deutlich effizienter

Szenengraph

Graph-basierte Darstellung der Komposition über die Verkettung von Transformationen

Zusammenfassung

  • Entwicklungsprozess
    • Einordnung der Vorlesungstermine
  • Geometrie-Modellierung
    • Euklidischer Raum/Vektorraum
    • Punkte/Linien/Flächen
    • Transformationen
    • Matrizen

Ausblick

  • Visuelle Wahrnehmung
    • Wie nehmen wir unsere dreidimensionale Welt wahr?
    • Welche Anhaltspunkte für die Tiefenwahrnehmung gibt es?
    • Wie lassen sich diese technisch darstellen?
  • Weitere Methoden den Geometrie-Modellierung
    • Perspektivische Projektion
    • Texturen
    • Shader
  • Technik
    • Stereo-Projektion
    • PowerWall, CAVEs, Head-Mounted-Displays (HMDs)