Virtuelle Realität

Entwicklungsprozess und Geometrie-Modellierung

Virtual Reality

Development Process and Geometric Modelling

Dr. Thies Pfeiffer

Cognitive Interaction Technology Center of Excellence,
Technische Fakultät, Universität Bielefeld

Termin:Montags, 14:15 Uhr

Raum: CITEC Hörsaal

Schedule:Mondays, 2:15 p.m.

Room:CITEC Auditorium

Letztes Mal...

Last time...

FormalesFormalities

  • ÜbungenTutorials

InhaltlichesContent

  • Definitionen von Virtueller RealitätDefinitions of Virtual Reality
  • AnwendungsbeispieleApplications of Virtual Reality

ÜberblickOverview

Inhalte dieser VeranstaltungAbout this lecture

  • Entwicklungsprozess einer VR InstallationDevelopment-Process of Virtual-Reality Applications
  • Geometrie-ModellierungGeometric Modelling

ArbeitsablaufWorkflow

Entwicklungsprozess einer VR InstallationDevelopment-Process of a VR Installation

  • Analyse des Simulationsgegenstandes (fachlicher Prozess)Analysis of the simulated object (subject-specific process)
  • Festlegung der Projektions- und SensortechnikChoosing appropriate technology for projection and sensing
  • Auswahl des Software-FrameworksChoosing the software framework
  • Geometrische ModellierungGeometric modelling
  • Funktionale ModellierungFunctional modelling
  • Modellierung der InteraktionInteraction modelling
  • EvaluationEvaluation

Geometrische-ModellierungGeometric Modelling


Die Modellierung der WeltModelling the World

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. First steps into virtual reality. The title is an allusion of Daniel Kehlmann's novell Measuring the World (Rowohlt, 2005). On the way to creating a likeness of reality, it is vital to measure it.

Geometrische ModellierungGeometric Modelling

ÜberblickOverview

  • Basis der meisten Anwendungen für Virtuelle RealitätBasis for most virtual-reality applications
  • Abstraktion der Realität durch die Modellierung von ObjektenAbstraction of reality by modelling objects
  • Techniken:Techniques:
    • Objekt-OberflächenObject surfaces
    • Bikubische parametrische PatchesBi-cubic parametric patches
    • Objekt-Volumen (Volume Rendering)Object volumes (volumetric rendering)
    • Constructive Solid Geometry
    • Implizite Darstellung (z.B. Raytracing)Implicit surface rendering (e.g. Raytracing)
    • Landschaften (Terrain)Terrain rendering
    • Punktwolken (z.B. Point-Clouds aus 3D Scans)Point clouds (e.g. from 3D scans)
  • Einen tieferen Einblick in diese Techniken bietet die $\to$ Vorlesung Introduction to Computer Graphics. More details about these techniques are given in the $\to$ Introduction to Computer Graphics.

Geometrische ModellierungGeometric Modelling

ProzessablaufWorkflow

Geometrische Modellierung - ProzessablaufGeometric Modelling - Workflow

Daten sammelnCollecting data

  • Technische ZeichnungenTechnical drawings
  • Daten aus Google Maps, OpenStreetMap, o.Ä.Data from Google Maps, OpenStreetMap, or others
  • Fotos für BemaßungPictures for dimensioning
  • Fotos für die TexturierungPictures for texturing
  • 3D Scanner / Foto-basierte 3D Rekonstruktion3D scans / Picture-based 3D reconstructions

Daten aufbereitenData preprocessing

  • Einheitliches Koordinatensystem, einheitliche Dimensionen (z.B. alles in Millimeter), Geschickte Wahl des Koordinatenursprungs Common coordinate system, common dimensions (e.g. everything in meters or millimeters), smart choice of the origin of the coordinate system
  • Vermessen der analogen QuellenMeasuring the analog sources
  • Normierung der TexturenNorming textures (colors, brightness)

Geometrische Modellierung - ProzessablaufGeometric Modelling - Workflow

Modell erstellenCreating the model

  • Einheitlichen Ursprung für die Positionierung wählenChoose a common origin for the positioning
  • Verwendung eines 3D ModellersUse a 3D modelling software
    • z.B.e.g. Blender, 3D Studio Max, Maya, etc.

Modell optimierenOptimize the model

  • Reduzierung der Anzahl der Punkte/Dreiecke (Geschwindigkeit, Speicherplatz)Reduce the number of vertices/triangles (speed, memory)
  • Entfernen von Rauschen (bei automatisch erstellten Modellen)Reduce noise (especially by automatically generated models)
  • Möglich z.B. mit This can e.g. be achieved using MeshLab

Geometrische Modellierung - ProzessablaufGeometric Modelling - Workflow

Texturen/Materialien auswählen und anwendenChoose and apply textures and materials

  • Fotos, Shader, Materialeigenschaften definierenImages, shader, material definitions
  • Handgefertigte Texturen erstellenCreate hand-crafted textures (UV-mapping)

Verschiedene TexturtypenDifferent kinds of textures

  • Colormaps (Auftragen von Bildern)Colormaps (applying pictures)
  • Diffuse Maps (Reflektionseigenschaften für diffuse Beleuchtung)Diffuse Maps (models reflection parameters for diffuse illumination)
  • Luminosity Maps (Selbstleuchten)
  • Specularity Maps (Reflektionseigenschaften bzgl. direkter Beleuchtung)(models reflection parameters regarding direct illumination)
  • Reflection Maps (Reflektionseigenschaften mit Umgebungsanteilen (Spiegelungen))(models reflection parameters including the environment, e.g. mirrorings)
  • Transparency Maps (Alpha-Werte)
  • Normal Maps / Parallax Maps
  • Bump Maps (Strukturen)(models fine-grained 1D structures)

Geometrische Modellierung - ProzessablaufGeometric Modelling - Workflow

BeleuchtungIllumination

  • Auswahl geeigneter virtueller LeuchtquellenSelection of suitable virtual lightsources
  • Unterschiede bei Offline-Renderings und Echtzeit-SystemenConsidering differences in offline- and realtime rendering
  • Viele Effekte schon über die Eigenschaften bei Texturierung zu erzielenMany visual effects are realized using textures
    • iteratives Vorgehenuse iterative approach
    • z.B. für die Effekte von diffuser Reflektion oder Spiegelungene.g. for the effects of diffuse reflections or mirrorings

Geometrische Modellierung / Lineare AlgebraGeometric Modelling / Linear Algebra

Die Mathematik der Geometrischen ModellierungThe maths of geometric modeling

Modellierung im Euklidischen RaumModeling in Euclidean Space

Euklidischer RaumEuclidian Space

  • Axiomatische Darstellung des Euklidischen Raumes durch David Hilbert David Hilbert has developed the axiomatic representation of the Euclidean Space
  • Einführung von Punkt, Linie, Gerade, Ebene, Winkel, etc.Euclidean space introduces the concepts of point, line, straight line, plane, angle, etc. as basic primitives
    • Punkt: etwas, das keine Teile hatPoint: something that cannot be devided
    • Linie: breitenlose LängeLine: a length without breadth
    • Gerade: eine Linie, die bezüglich ihrer Punkte auf ihr stets gleich liegtStraight Line: a line which regarding their points always lays alike

BemerkungenComments

  • Die Konzepte werden anschaulich eingeführtAll concepts are introduced graphically
  • Alles lässt sich über Zeichnen und Messen (Strecken/Winkel) darstellenEverything can be constructed by drawing and measuring of length and angles
  • Mit der Euklidischen Geometrie lassen sich die Objekte der Realität abstrakt, aber rein visuell darstellen.With the methods of Euclidean Space we can create an abstract representation of the objects of reality, but purely visually.

Wie macht man Geometrie berechenbar?How do we make geometry computable?

Übergang zur analytischen Geometrie des RaumesTransition to the analytic geometry of space

  • Einführung eines KoordinatensystemsIntroduction of a coordinate system
  • Jeder Punkt lässt sich damit durch ein Paar (2D) oder ein Tripel (3D) von reellen Zahlen darstellen ($\to$ Tupel).Now every point can be represented by a pair (2D) or a tripel (3D) of real numbers ($\to$ tupel).
  • Objekte wie Geraden oder Ebenen lassen sich dann über Mengen von Tupeln beschreiben.Objects, such as lines or planes, can then be represented by sets of tupels.
  • Diese Mengen lassen sich abstrakt über Gleichungen beschreiben.Such sets can also be represented in a more abstract way using equations.
    • Gerade in der Ebene: $ax+by=c$ bzw. $y = mx + n$A line in the 2D plane: $ax+by=c$ bzw. $y = mx + n$

Der Affine Raum (1/2)Affine Space (1/2)

Auf dem Weg zum Rechnen: Der Affine RaumOn the road to computation: Affine Space

  • Affiner Raum: Mathematisches Modell des realen AnschauungsraumesAffine Space: mathematical model of the 3D space around us
  • Vektorraum: algebraische Struktur der Linearen Algebra über einem Körper $(\mathrm{K},+,\cdot)$ Vector Space: an Algebraic Structure of the Linear Algebra over a Field $(\mathrm{K},+,\cdot)$
    • Vektoren: Tupel von Skalaren (Koordinaten), z.B. $(x,y,z)$ im $\Re3$Vectors: tupels of scalar values (coordinates), e.g. $(x,y,z)$ in $\Re3$
    • Skalare (Skalare Multiplikation $\star:K \times V \to V$)Scalar (scalar multiplication $\star:K \times V \to V$)
    • MatrizenMatrices $\left( \begin{array}{ccc}a & b & c\\ d & e & f\\ g & h & i\end{array}\right)$

Der Affine Raum (1/2)Affine Space (1/2)

BemerkungenComments

  • Affiner Punkt-Raum und Vektorraum der Verschiebungsvektoren kann synonym verwendet werden, falls im Affinen Punkt-Raum ein Ursprung festgelegt wird.The terms Affine Space and Vector Space of translation vectors can be used synonymously, if we select an Origin in the Affine Space.
  • 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.Based on the formal modeling, it is exactly defined what can be computed and how. This is systematically derived, e.g., from Fields and Abelian Groups.
  • Durch die algebraischen Hilfsmittel werden geometrische Probleme rechnerisch lösbar, und damit auch im Computer darstellbar.Only using this algebraic tools geometric problems can be solved computationally and thus can be represented in a computer.

Wie repräsentiert man Geometrien im Computer?How do we represent geometries in a computer?

Vielfältige RepräsentationsformateManifold of representation formats

Beispiel aus der VorlesungRepresentation formats used in this course

X3D - eXtensible 3D

  • X3D wird für die Beispiele in der Vorlesung und später in den Übungen verwendet.In the examples of the lecture and later in the tutorials we will be using X3D.
  • Nachfolger von VRML, verwaltet und entwickelt vom web3DSuccessor of VRML, managed and developed by the web3D
  • Erste Version verabschieded 2001 vom W3C, ISO Standard seit 2004First version released 2001 by the W3C, ISO Standard since 2004
  • Ziel: Darstellung von 3D Inhalten im WebGoal: Visualizing 3D content in the web
  • Entweder durch Plugins für Web-Browser (BS Contact VRML/X3D) oder mittels WebGL (x3dom)Either by using plugin for web browsers (BS Contact VRML/X3D) or using WebGL (x3dom)
  • Alternativ sind auch Standalone-Browser verfügbar, zum Teil mit Erweiterungen der SpracheAlternatively there are standalone browsers for X3D, some of which include specific extensions to the language (H3D, InstantReality, Xj3D)
  • In der Vorlesung wird x3dom zu Demonstrationszwecken verwendet und in den Übungen Blender, Unity3D oder Unreal Engine.In the lecture we will use X3DOM for demonstration purposes and in the tutorials Blender, Unity3D or Unreal Engine.

Daten sammelnCollecting Data

Beispiel: WürfelExample: 6-sided Dice

  • Festlegung eines KoordinatensystemsDecide upon the coordinate system
  • Festlegung des Ursprungs, z.B.Select a suitable origin, e.g.
  • ... Mittelpunkt oder Schwerpunkt des Objektesgeometric center or center of gravity of the object
  • ... natürlicher Auflagepunkt des Objektes (z.B. Füße)natural support point of the object (e.g. feet)
  • Festlegung der Modellierungseinheiten (mm, m)Decide upon the dimensions (meters, millimeters)
Einfacher Spielwürfel
Handelsüblicher WürfelGeneric 6-sided dice

Modellierung mitModeling with X3D $\to$ X3DOM

X3DOM

  • X3DOM ist eine Implementierung eines Teils von X3D mit Hilfe des HTML5 Document Models, JavaScript und WebGL.X3DOM implements parts of X3D with the help of the HTML5 Document Model, JavaScript and WebGL.
  • In der Vorlesung werden mittels X3DOM Beispiele direkt in die Folien eingebettet.In this lecture, we will see examples of X3DOM embedded directly into the slides.
  • Über den "Source"-Button kann direkt im Browser auf den Beispiel-Code zugegriffen und dieser verändert werden.You can use the "Source"-Button to access and edit the corresponding code.
  • So lassen sich die Beispiele interaktiv explorieren.Feel free to interactively explore the examples!

Darstellung von PunktenVisualizing Points

Mathematische FormulierungMathematical description

  • Eckpunkte eines WürfelsCorners of a dice
  • Vorderseite:Front:
$\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:Back:
$\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 LinienVisualizing Lines

Mathematische FormulierungMathematical description

  • Eckpunkte eines WürfelsCorners of the dice
    • VorderseiteFront: $\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ückseiteBack: $\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 EckpunkteConnections between the edges
    • $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ächenVisualizing Surfaces

Mathematische FormulierungMathematical description

  • Verbindungen der Eckpunkte zu Flächen, z.B. jeweils 4 Punkte eine FlächeConnecting the edges to surfaces, e.g. 4 points each for a surface
    • $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.The direction of the surface is important! It is given by its normal.
  • Normale steht senkrecht auf der Fläche, positive Richtung gegeben durch Rechte-Hand-Regel (gegen den Uhrzeigersinn zum Betrachter)The normal is perpendicular to the surface, the positive direction is given using the right-hand rule (counter-clockwise sequence from the perspective of the observer)
  • Die Normale kann für die Bestimmung der Beleuchtung und der Sichtbarkeit verwendet werden.The normal can be used for illumination and determining visibility.
  • Zeigt die Normale vom Betrachter weg, dann ist die Fläche unsichtbar.If the normal points away from the observer, the surface is considered to be invisible.

Darstellung von einfachen KörpernVisualizing Basic Geometries

Parametrische Basis-PrimitiveParametric Basic Primitives

Komposition von SzenenCompositioning Complex Scenes

Wie lassen sich komplexere Szenen flexibel zusammensetzen?How can we flexibly arrange complex scenes?

  • Positionierung von Objekten im Raum überPositioning of objects in 3D space using
    • Translation (Verschiebung)
    • Rotation (Drehung)
    • Skalierung (Vergrößerung/Verkleinerung)Scaling

Mit Geometrien rechnenCalculating with Geometries

Rotation - RichtungskosinusseRotation

  • Eine Rotation kann durch eine Drehung des Koordinatensystems ausgedrückt werden.A rotation can be expressed by a rotation of a coordinate system.
  • $\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.Each row represents the components of a normalized unit vector of the rotated basis.
  • Die Komponenten dieser Einheitsvektoren entsprechen wiederum den Kosinussen der Rotationswinkel.The components of these unit vectors in turn are equal to the cosines of the rotation angles.

Mit Geometrien rechnenCalculating with Geometries

Rotation - XYZ - Feste WinkelFixed Angles (1/2)

  • Eine Rotation kann durch drei Drehungen um ein festes Referenzsystem ausgedrückt werden.A 3D rotation can be expressed by three rotations around a fixed reference system.
  • Oft werden die Drehwinkel als yaw, pitch, roll bezeichnet. In einem Rechtshändigen Koordinatensystem mit vertikaler Y-Achse bedeutet das:Often the terms yaw, pitch, and roll are used to refer to the rotation angles. In a right-handed coordinate system with vertical Y-axis this means:
    • yaw: Rotation um die Y-AchseRotation around the Y-axis $\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-AchseRotation around the X-axis $\left( \begin{array}{ccc}1 & 0 & 0\\ 0 & \cos pitch & -\sin pitch \\ 0 & \sin pitch & \cos pitch\\\end{array}\right) $

Mit Geometrien rechnenCalculating with Geometries

Rotation - XYZ - Feste WinkelFixed Angles (2/2)

    • roll: Rotation um die Z-AchseRotation around the Z-axis $\left( \begin{array}{ccc}\cos roll & -\sin roll & 0\\ \sin roll & \cos roll & 0\\ 0 & 0 & 1\\\end{array}\right) $

Mit Geometrien rechnenCalculating with Geometries

Problem

Wie bildet man Translationen ab?How do we map translations?

  • Die Werte der 3x3 Matrix werden mit den einzelnen Koordinaten x, y und z multipliziert.All values of the 3x3 matrix are multiplied with the individual coordinates of the to-be-transformed vector.
  • Eine konstante Verschiebung kann so nicht erreicht werden.This way a constant translation cannot be achieved.
  • $\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)$

Mit Geometrien rechnenCalculating with Geometries

Translation

  • Lösung: Einführung einer weiteren Dimension $\to$ homogene MatrixSolution: Introduce a new dimension $\to$ homogeneous 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.The 1 in the fourth position of the vector will be multiplied with $t_x$, $t_y$ and $t_z$. This way we achieve a constant translation.

Mit Geometrien rechnenCalculating with Geometries

SkalierungScaling

  • $\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.The values of the diagonal will be multiplied with x, y and z. They can be use to achieve a scaling in any dimension.
  • Neben Translation und Skalierung kann so auch die perspektivische Projektion berechnet werden $\to$ nächste VorlesungBesides translation and scaling, the additional dimension can also be used to represent the perspective projection required to visualize 3D content on a 2D screen $\to$ next time

Komposition von SzenenComposition of Scenes

Komplexere ObjekteComplex objects

  • Komposition/Verschachtelung von TransformationenConcatenating/Stacking transformations
  • Zurückbesinnung auf die mathematische Basis:Look back upon the mathematical basis:
    • Bei der Komposition werden Koordinatensysteme transformiert.A composition of objects in a scene is a transformation of coordinate systems.
    • Es handelt sich um Abbildungen im 3D Raum.These are mappings in 3D space.
    • Diese können als Matrizen dargestellt werden.They can be represented as matrices.
  • $\to$ Matrizen kann man konkatenieren, in dem man sie multipliziertMatrices can be concatenated by multiplying them: $M_TM_RM_S * v$

KommentareComments

QuaternionenQuaternions

  • Rotationen werden auch gerne als Quaternionen repräsentiert.Often rotations are represented as quaternions.
  • $q = (s + xi + yj + zk)$
  • QuaternionenQuaternions
    • ... sind in Rotationsmatrizen überführbarcan be transformed to rotation matrices
    • ... brauchen nur 4 statt 9 Werte zu speichernonly need to store 4 instead of 9 values
    • ... Rotationsachse direkt angebbarcontain the axis of rotation
    • ... keine Konvention über Reihenfolge der Rotationen benötigtno convention about the order of rotation around the axes is required
    • ... leichter zu interpolierencan be easily interpolated to create smooth animations
    • ... Multiplizieren von Quaternionen ist deutlich effizientermultiplying quaternions is more efficient than multiplying matrices

ÜberlegungenDesiderations

Geometrie ModellierungGeometric Modeling

  • Die Werkzeuge aus der Linearen Algebra (Vektor, Matrizen, Operatoren) erweisen sich als sehr praktisch für die computerbasierte Modellierung von 3D Modellen.The tools of linear algebra (vectors, matrices, operations) are useful for the computer-based modeling of 3D objects.

Problem

Wie lassen sich Punkte, Flächen und Körper sinnvoll strukturieren, so dass Objekte entstehen, die leicht handhabbar (z.B. platzierbar) sind?How can points, surfaces or other objects be structured efficiently, so that the resulting representations are handled efficiently during runtime?

ÜberlegungenDesiderations

Erster AnsatzFirst approach

  • Jede Geometrie $G_x$ wird über eine eigene Transformationsmatrix $T_x$ im Raum angeordnet.Every geometry $G_x$ is positioned in space by a transformation matrix $T_x$.
  • Die Welt besteht damit aus einer flachen Liste von TupelnThe world is thus a flat list of tupels:
    • $T_0G_0$
    • $T_1G_1$
    • $T_2G_2$
    • $T_3G_3$
    • $\ldots$
  • Sehr effizient wenn sich nur wenig bewegt (z.B. frühe 3D Spiele)This is very efficient - but only if nothing moves (e.g. in early 3D games)
  • Aber: problematisch, wenn sich Elemente relativ zueinander bewegen sollen (Räder am Auto, Planeten im Sonnensystem, Körperteile,...)It is, however, problematic as soon as objects can move relatively to each other. Examples are wheels of a car, planets in the solar system, body parts,...)

ÜberlegungenDesiderations

Strukturierter AnsatzStructural approach

  • Die Transformationen werden für strukturierte Geometrien getrenntSeparate the transformations for structured geometries.
  • Die Welt besteht weiterhin aus einer flachen Liste von TupelnThe world is still a flat list of tupels:
    • $T_{Auto}G_{Auto}$$T_{car}G_{car}$
    • $T_{Auto}T_{Vorderachse}G_{Achse}$$T_{car}T_{front-axis}G_{axis}$
    • $T_{Auto}T_{Vorderachse}T_{linkes Vorderrad}G_{linkes Vorderrad}$$T_{car}T_{front-axis}T_{left front wheel}G_{left front wheel}$
    • $T_{Auto}T_{Vorderachse}T_{rechtes Vorderrad}G_{rechtes Vorderrad}$$T_{car}T_{front-axis}T_{right front wheel}G_{right front wheel}$
    • $T_{Auto}T_{Hinterachse}G_{Achse}$$T_{car}T_{back-axis}G_{axis}$
    • $T_{Auto}T_{Hinterachse}T_{linkes Hinterrad}G_{linkes Hinterrad}$$T_{car}T_{back-axis}T_{left back wheel}G_{left back wheel}$
    • $T_{Auto}T_{Hinterachse}T_{rechtes Hinterrad}G_{rechtes Hinterrad}$$T_{car}T_{back-axis}T_{right back wheel}G_{right back wheel}$
    • $\ldots$
  • Jede Transformation ist eine Variable $\to$ eine Änderung von $T_{Auto}$ wirkt sich auf alle relevanten Autoteile aus.Each transformation is a variable $\to$ a change of $T_{car}$ will have effects on all relevant parts of the car.
  • Aber: Ineffiziente Berechnung, da viele Multiplikationen wiederholt durchgeführt werden.However: the computation of the individual transformation matrices is still not very efficient, because many multiplications are repetitively done.

SzenengraphScenegraph

LösungSolution

Graph-basierte Darstellung der Komposition über die Verkettung von TransformationenUse a graph-based representation of the composition by concatenation of transformations

ZusammenfassungSummary

  • EntwicklungsprozessDevelopment-Process of a VR installation
    • Einordnung der VorlesungstermineShort summary of the sessions to come
  • Geometrische-ModellierungGeometric Modeling
    • Euklidischer Raum/VektorraumEuclidean Space/Vector Space
    • Punkte/Linien/FlächenPoints, Lines, Surfaces
    • TransformationenTransformations
    • MatrizenMatrices
    • SzenengraphScenegraph

AusblickOutlook

  • Visuelle WahrnehmungVisual Perception
    • Wie nehmen wir unsere dreidimensionale Welt wahrHow do we perceive our three-dimensional world?
    • Welche Anhaltspunkte für die Tiefenwahrnehmung gibt esWhich visual cues are available for perceiving depth?
    • Wie lassen sich diese technisch darstellenHow can they be displayed technically?
  • Weitere Methoden den Geometrie-ModellierungAdditional methods of geometric modeling
    • Perspektivische ProjektionPerspective projection
    • TexturenTextures
    • Shader
  • TechnikTechnologies
    • Stereo-ProjektionStereo-Projection
    • PowerWall, CAVEs, Head-Mounted-Displays (HMDs)