Virtuelle RealitätVirtual Reality

Entwicklungsprozess und Geometrische Modellierung Development Process and Geometric Modelling

Dr. Thies Pfeiffer

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

Termin:Montags, 14:15 Uhr

Raum: CITEC Auditorium

Schedule:Mondays, 2:15 p.m.

Room: CITEC Auditorium

Inhalte dieser VeranstaltungTopic of this lecture

  • Inhalte dieser VeranstaltungAbout this lecture
    • Entwicklungsprozess einer VR Installation Development-Process of Virtual-Reality Applications
    • Geometrische Modellierung Geometric 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

Der Prozess der Geometrischen ModellierungThe Process of Geometric Modelling


Die Modellierung der Welt Modelling 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.

ÜberblickOverview

  • Eine geometrische Modellierung ist die Basis der meisten Anwendungen für Virtuelle Realität The geometric modelling is the basis for most virtual-reality applications
  • Abstraktion der Realität durch die Modellierung von Objekten Abstraction of reality by modelling objects
  • Grundlegende Fragen Fundamental Questions
    • Wie können Form und Aussehen von Objekten möglichst genau beschrieben werden? How can form and appearance of objects be described with high precision?
    • Wie sehen maschinenverarbeitbare Repräsentationen dieser Beschreibungen aus? How do machine-processable representations of these descriptions look like?
    • Wie können die Prozesse der Modellierung und der Veränderung der Modellierung auf Berechnungen abgebildet werden, damit der Computer Modellierungen und Animationen vornehmen kann? How can the processes of modelling and changing the modelling be mapped to computations, so that a machine can model and animate?
  • Einen tieferen Einblick in diese Techniken bietet die $\to$ Vorlesung Introduction to Computer Graphics von Mario Botsch. More details about these techniques are given in the $\to$ Introduction to Computer Graphics by Mario Botsch.

TechnikenTechniques

  • 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)

ProzessablaufWorkflow

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)

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

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)

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

Die Mathematik der Geometrischen ModellierungThe maths of geometric modeling

Die Euklidische GeometrieThe Euclidian Geometry

  • Euklid von Alexandria, ein griechischer Mathematiker aus dem 3. Jahrhunder v. Chr., entwickelte einen systematischen, auf zeichnerischen Konstruktionsprinzipien basierten Ansatz zur Beschreibung von Geometrien.Euclid of Alexandria, a greece mathematician from 300 B.C., developed a systematic approach, based on graphical principles and procedures to describe geometries.
  • Die axiomatische Darstellung der Euklidischen Geometrie erfolgte durch David Hilbert (19./20. Jh.) David Hilbert (19th/20th century) has developed the axiomatic representation of the Euclidean Geometry
  • Einführung von Punkt, Linie, Gerade, Ebene, Winkel, etc.Euclidean geometry 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
      (nachtranslated after Wikipedia/Euklidische Geometrie)

Konstruktion eines gleichseitigen DreiecksConstruction of a triangle of equal sides

  • Wähle einen Punkt AChoose a point A
  • Zeichne Gerade g durch den Punkt ADraw a straight g through A
  • Zeichne Kreis mit Radius 4cm um ADraw a circle with radius 4cm around A
  • Identifiziere einen Schnittpunkt des Kreises um A mit Geraden g als BIdentify one intersect of the circle around A with g as B
  • Zeichne Kreis mit Radius 4cm um BDraw a circle with radius 4cm around B
  • Identifiziere einen Schnittpunkt der Kreise um A und B als Punkt CIdentify one intersect of the circles around A and B as C
  • Verbinde Punkte A,B,C jeweils mit einer LinieConnect the points A,B,C each with one line
  • Das Dreieck ABC hat die Kantenlänge 4cmThe triangle ABC has edges with length 4cm

Interaktives BeispielInteractive Example

BemerkungenComments

  • Die Konzepte werden anschaulich und systematisch eingeführt All concepts are introduced graphically and very systematically
  • Alles lässt sich über Zeichnen und Messen (Strecken/Winkel) darstellen Everything 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 Geometry we can create an abstract representation of the objects of reality, but purely visually.
  • Konstruktionsbeschreibungen können lang und komplex werden. However, the recipes for construction can get long and complex.
  • Noch aufwändiger wird es, wenn ein Element bewegt werden soll. Das wirkt sich unter Umständen auf das gesamte Konstruktionsrezept aus. It gets even more complex, if one element should be moved. This may have effects for the whole construction recipe.

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 Koordinatensystems Introduction 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$

Konstruktion eines gleichseitigen Dreiecks über KoordinatenConstruction of a triangle of equal sides using coordinates

  • Zeichne Punkt A mit Koordinaten (1 1)Draw point A with coordinates (1 1)
  • Zeichne Punkt B mit Koordinaten (5 1)Draw point B with coordinates (5 1)
  • Zeichne Punkt C mit Koordinaten (3 4,46)Draw point C with coordinates (3 4.46)
  • Verbinde A,B,C jeweils mit einer LinieConnect A,B,C with one edge each
  • Das Dreieck ABC hat die Kantenlänge 4cmThe triangle A,B,C has edges of length 4cm

Interaktives BeispielInteractive Example

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

  • 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$)
  • Affiner Raum: Mathematisches Modell des realen Anschauungsraumes Affine Space: mathematical model of the 3D space around us
    • Vektorraum erweitert um Punkte $P$ Vector Space extended by points $P$
    • Zusätzliche Operation: Subtraktion von Punkten Additional Operation: Subtraction of points
  • Euklidischer Raum: Erweiterung um Abstände Euclidian Space: Affine Space with distances
    • Affiner Raum erweitert um das euklidische Abstandsmaß Affine Space extended by euclidian distance
    • Zusätzliche Operation: Skalarprodukt Additional Operation: Scalar Product

Das kartesische KoordinatensystemCartesian Coordinates

  • Kartesisches Koordinatensystem: Koordiatensystem mit Basisvektoren der Länge 1, die senkrecht aufeinander stehen Cartensian Coordinate System: Coordinate system with basis vectors of length 1, which are perpendicular to each other
  • Rechtshändige und linkshändige Koordiatensysteme sind möglich Right-handed and left-handed coordinate systems can be used

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

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 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.
  • 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äche Connecting 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! Sie 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 Abfolge der Punkte und Rechte-Hand-Regel (gegen den Uhrzeigersinn zum Betrachter) The normal is perpendicular to the surface, the positive direction is given using the order of points and 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

Die meisten Modellierungswerkzeuge bringen parametrisierbare Basis-Primitive mit, so dass einfache Geometrien nicht immer aus einzelnen Punkten neu aufgebaut werden müssen. Typische Primitive sind: Most modelling tools provide parametric basic primitives, so that basic geometries do not have to be build using individual points from scratch. Typical primitives are:

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.

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

Projektionen von 3D $\to$ 2DProjecting from 3D $\to$ 2D

ParallelprojektionParallel projection

$\left( \begin{array}{c}x'\\ y'\\ 0\\ 1\end{array}\right) = \left( \begin{array}{ccc}1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\0 & 0 & 0 & 1 \end{array}\right) \left( \begin{array}{c}x\\ y\\ z\\ 1\end{array}\right)$

Projektionen von 3D $\to$ 2DProjecting from 3D $\to$ 2D

Perspektivische ProjektionPerspective projection

$ \left( \begin{array}{c}x'\\ y'\\ 0\\ \frac{(z+d)}{d}\end{array}\right) = \left( \begin{array}{ccc}1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\0 & 0 & \frac{1}{d} & 1 \end{array}\right) \left( \begin{array}{c}x\\ y\\ z\\ 1\end{array}\right)$

$d$ ist der Abstand vom Betrachter zur Projektionsebeneis the distance from the observer to the projection screen

$ \left( \begin{array}{c}\frac{x'd}{(z+d)}\\ \frac{y'd}{(z+d)}\\ 0\\ 1\end{array}\right) = \left( \begin{array}{c}x'\\ y'\\ 0\\ \frac{(z+d)}{d}\end{array}\right)$

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$

Ü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

ZusammenfassungSummary

ZusammenfassungSummary

Inhalte dieser VeranstaltungTopics covered in this lecture

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