Download - Einführung in die Grundlagen von 3D-Engines
![Page 1: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/1.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Einführung in die Grundlagen von 3D-Engines
Teil 1: Mathematische Grundlagen
M. Kle�mann M. Muckho�
Xpiriax Software
RPC 2009
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 2: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/2.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Gliederung
1 Ein paar Begri�e zum AnfangGame EngineGrundlagen 3D-Engine
2 Mathematische Grundlagen3D-2D-TransformationTranslation im RaumRotation im Raum
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 3: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/3.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Gliederung
1 Ein paar Begri�e zum AnfangGame EngineGrundlagen 3D-Engine
2 Mathematische Grundlagen3D-2D-TransformationTranslation im RaumRotation im Raum
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 4: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/4.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Was ist eine Game Engine?
Eine Game Engine ist das Grundgerüst eines Computerspiels
ist Programmcode bzw. eine Sammlung vonwiederverwendbaren Codebausteinen
wird oft für einen bestimmten Spieltyp entwickelt: Shooter,Echtzeit-Strategie, ...
besteht aus Komponenten: Gra�k, Audio, Physik, Input, ...
populäre Beispiele:
Doom3-Engine (id Tech 4)Gamebryo (Prince of Persia: Sands of Time-Trilogie, SidMeier's Pirates, Sid Meier's Civiliziation IV, Dark Age ofCamelot, The Elder Scrolls: Morrowind, Oblivion und Fallout 3)SCUMM (Monkey Island Reihe)3D GameStudio
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 5: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/5.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Was ist eine Game Engine?
Eine Game Engine ist das Grundgerüst eines Computerspiels
ist Programmcode bzw. eine Sammlung vonwiederverwendbaren Codebausteinen
wird oft für einen bestimmten Spieltyp entwickelt: Shooter,Echtzeit-Strategie, ...
besteht aus Komponenten: Gra�k, Audio, Physik, Input, ...
populäre Beispiele:
Doom3-Engine (id Tech 4)Gamebryo (Prince of Persia: Sands of Time-Trilogie, SidMeier's Pirates, Sid Meier's Civiliziation IV, Dark Age ofCamelot, The Elder Scrolls: Morrowind, Oblivion und Fallout 3)SCUMM (Monkey Island Reihe)3D GameStudio
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 6: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/6.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Was ist eine Game Engine?
Eine Game Engine ist das Grundgerüst eines Computerspiels
ist Programmcode bzw. eine Sammlung vonwiederverwendbaren Codebausteinen
wird oft für einen bestimmten Spieltyp entwickelt: Shooter,Echtzeit-Strategie, ...
besteht aus Komponenten: Gra�k, Audio, Physik, Input, ...
populäre Beispiele:
Doom3-Engine (id Tech 4)Gamebryo (Prince of Persia: Sands of Time-Trilogie, SidMeier's Pirates, Sid Meier's Civiliziation IV, Dark Age ofCamelot, The Elder Scrolls: Morrowind, Oblivion und Fallout 3)SCUMM (Monkey Island Reihe)3D GameStudio
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 7: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/7.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Was ist eine Game Engine?
Eine Game Engine ist das Grundgerüst eines Computerspiels
ist Programmcode bzw. eine Sammlung vonwiederverwendbaren Codebausteinen
wird oft für einen bestimmten Spieltyp entwickelt: Shooter,Echtzeit-Strategie, ...
besteht aus Komponenten: Gra�k, Audio, Physik, Input, ...
populäre Beispiele:
Doom3-Engine (id Tech 4)Gamebryo (Prince of Persia: Sands of Time-Trilogie, SidMeier's Pirates, Sid Meier's Civiliziation IV, Dark Age ofCamelot, The Elder Scrolls: Morrowind, Oblivion und Fallout 3)SCUMM (Monkey Island Reihe)3D GameStudio
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 8: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/8.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Was ist eine Game Engine?
Eine Game Engine ist das Grundgerüst eines Computerspiels
ist Programmcode bzw. eine Sammlung vonwiederverwendbaren Codebausteinen
wird oft für einen bestimmten Spieltyp entwickelt: Shooter,Echtzeit-Strategie, ...
besteht aus Komponenten: Gra�k, Audio, Physik, Input, ...
populäre Beispiele:
Doom3-Engine (id Tech 4)Gamebryo (Prince of Persia: Sands of Time-Trilogie, SidMeier's Pirates, Sid Meier's Civiliziation IV, Dark Age ofCamelot, The Elder Scrolls: Morrowind, Oblivion und Fallout 3)SCUMM (Monkey Island Reihe)3D GameStudio
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 9: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/9.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Hauptbestandteile einer Game Engine
Render Engine (3D-Engine)
Anzeige der (heutzutage meist dreidimensionalen) Spielgra�k
Sound Engine
Ausgabe von Sound und Musik
Physics Engine
Simulation von physikalischen und pseudo-physikalischenE�ekten, wie z.B. Schwerkraft, Auftrieb im Wasser undSliding, etc...
Data loading & Input Engine
Laden der (3D-)Modelle, des Levels sowie der SounddateienVerarbeiten der Nutzereingaben von Maus, Tastatur undJoystick
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 10: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/10.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Hauptbestandteile einer Game Engine
Render Engine (3D-Engine)
Anzeige der (heutzutage meist dreidimensionalen) Spielgra�k
Sound Engine
Ausgabe von Sound und Musik
Physics Engine
Simulation von physikalischen und pseudo-physikalischenE�ekten, wie z.B. Schwerkraft, Auftrieb im Wasser undSliding, etc...
Data loading & Input Engine
Laden der (3D-)Modelle, des Levels sowie der SounddateienVerarbeiten der Nutzereingaben von Maus, Tastatur undJoystick
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 11: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/11.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Hauptbestandteile einer Game Engine
Render Engine (3D-Engine)
Anzeige der (heutzutage meist dreidimensionalen) Spielgra�k
Sound Engine
Ausgabe von Sound und Musik
Physics Engine
Simulation von physikalischen und pseudo-physikalischenE�ekten, wie z.B. Schwerkraft, Auftrieb im Wasser undSliding, etc...
Data loading & Input Engine
Laden der (3D-)Modelle, des Levels sowie der SounddateienVerarbeiten der Nutzereingaben von Maus, Tastatur undJoystick
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 12: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/12.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Hauptbestandteile einer Game Engine
Render Engine (3D-Engine)
Anzeige der (heutzutage meist dreidimensionalen) Spielgra�k
Sound Engine
Ausgabe von Sound und Musik
Physics Engine
Simulation von physikalischen und pseudo-physikalischenE�ekten, wie z.B. Schwerkraft, Auftrieb im Wasser undSliding, etc...
Data loading & Input Engine
Laden der (3D-)Modelle, des Levels sowie der SounddateienVerarbeiten der Nutzereingaben von Maus, Tastatur undJoystick
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 13: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/13.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Gliederung
1 Ein paar Begri�e zum AnfangGame EngineGrundlagen 3D-Engine
2 Mathematische Grundlagen3D-2D-TransformationTranslation im RaumRotation im Raum
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 14: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/14.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Koordinatensysteme
Koordinatensystem aus der Schule Koordinatensystem für 3D-Engine
P1 := (3 | 1) P2 := (3 | 1 | 1)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 15: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/15.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Game EngineGrundlagen 3D-Engine
Woraus bestehen 3D-Objekte am Computer?
Repräsentation durch Eckpunkte (Vertices):
−→
Die Eckpunkte werden als Koordinaten P = (x ,y ,z) imdreidimensionalen Raum geschrieben. Beispiel:
P = (1,1,0)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 16: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/16.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Gliederung
1 Ein paar Begri�e zum AnfangGame EngineGrundlagen 3D-Engine
2 Mathematische Grundlagen3D-2D-TransformationTranslation im RaumRotation im Raum
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 17: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/17.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Wie zeichnet man dreidimensionale Objekteauf einen zweidimensionalen Bildschirm?
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 18: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/18.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Idee: Abzeichnen auf einer Scheibe
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 19: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/19.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Vorgehensweise beim Abzeichnen
Das Abzeichnen erfolgt in zwei Schritten:
1 Umrechnung der Eckpunkte: Hier werden die Eckpunkte vom3D-Raum (x,y,z) in den 2D-Raum der Scheibe (x,y)umgewandelt
2 Ausmalen der Flächen: Nach der Umrechnung werden dieFlächen zwischen den Eckpunkten auf der Scheibe ausgemalt
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 20: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/20.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Vorgehensweise beim Abzeichnen
Das Abzeichnen erfolgt in zwei Schritten:
1 Umrechnung der Eckpunkte: Hier werden die Eckpunkte vom3D-Raum (x,y,z) in den 2D-Raum der Scheibe (x,y)umgewandelt
2 Ausmalen der Flächen: Nach der Umrechnung werden dieFlächen zwischen den Eckpunkten auf der Scheibe ausgemalt
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 21: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/21.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 1: Umrechnen der Eckpunkte
Berechnung für Breite (x) und Höhe (y) können umabhängigvoneinander vorgenommen werden
Problem wird daduch zum zweidimensionalen Problem
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 22: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/22.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 1: Umrechnen der Eckpunkte
Berechnung für Breite (x) und Höhe (y) können umabhängigvoneinander vorgenommen werden
Problem wird daduch zum zweidimensionalen Problem
Beispiel: Berechnung der Höhe (y)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 23: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/23.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 1: Umrechnen der Eckpunkte
Berechnung für Breite (x) und Höhe (y) können umabhängigvoneinander vorgenommen werden
Problem wird daduch zum zweidimensionalen Problem
Beispiel: Berechnung der Höhe (y)
Strahlensatzy2DDist
= y3Dz3D
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 24: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/24.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 1: Umrechnen der Eckpunkte
Berechnung für Breite (x) und Höhe (y) können umabhängigvoneinander vorgenommen werden
Problem wird daduch zum zweidimensionalen Problem
Beispiel: Berechnung der Höhe (y)
Strahlensatzy2DDist
= y3Dz3D
läÿt sich umstellen zu
y2D = y3Dz3D·Dist
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 25: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/25.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 2: Ausmalen der Flächen
Nach dem Umrechnen der Eckpunkte werden die Flächen zwischen den Eckpunktenauf der Scheibe ausgefüllt.
Es werden nur Dreiecke als Flächen genutzt (einfacher weil nicht knickbar →Blatt Papier)
Dreieck werden zeilenweise entweder mit Farbe oder Textur gefüllt
Das Füllen übernimmt heute die Gra�kkarte
Füllverfahren für Texturen sind erst mit Linearer Algebra erklärbar
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 26: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/26.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 2: Ausmalen der Flächen
Nach dem Umrechnen der Eckpunkte werden die Flächen zwischen den Eckpunktenauf der Scheibe ausgefüllt.
Es werden nur Dreiecke als Flächen genutzt (einfacher weil nicht knickbar →Blatt Papier)
Dreieck werden zeilenweise entweder mit Farbe oder Textur gefüllt
Das Füllen übernimmt heute die Gra�kkarte
Füllverfahren für Texturen sind erst mit Linearer Algebra erklärbar
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 27: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/27.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 2: Ausmalen der Flächen
Nach dem Umrechnen der Eckpunkte werden die Flächen zwischen den Eckpunktenauf der Scheibe ausgefüllt.
Es werden nur Dreiecke als Flächen genutzt (einfacher weil nicht knickbar →Blatt Papier)
Dreieck werden zeilenweise entweder mit Farbe oder Textur gefüllt
Das Füllen übernimmt heute die Gra�kkarte
Füllverfahren für Texturen sind erst mit Linearer Algebra erklärbar
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 28: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/28.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 2: Ausmalen der Flächen
Nach dem Umrechnen der Eckpunkte werden die Flächen zwischen den Eckpunktenauf der Scheibe ausgefüllt.
Es werden nur Dreiecke als Flächen genutzt (einfacher weil nicht knickbar →Blatt Papier)
Dreieck werden zeilenweise entweder mit Farbe oder Textur gefüllt
Das Füllen übernimmt heute die Gra�kkarte
Füllverfahren für Texturen sind erst mit Linearer Algebra erklärbar
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 29: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/29.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Schritt 2: Ausmalen der Flächen
Nach dem Umrechnen der Eckpunkte werden die Flächen zwischen den Eckpunktenauf der Scheibe ausgefüllt.
Es werden nur Dreiecke als Flächen genutzt (einfacher weil nicht knickbar →Blatt Papier)
Dreieck werden zeilenweise entweder mit Farbe oder Textur gefüllt
Das Füllen übernimmt heute die Gra�kkarte
Füllverfahren für Texturen sind erst mit Linearer Algebra erklärbar
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 30: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/30.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Gliederung
1 Ein paar Begri�e zum AnfangGame EngineGrundlagen 3D-Engine
2 Mathematische Grundlagen3D-2D-TransformationTranslation im RaumRotation im Raum
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 31: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/31.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Wie bewegt man die Objekte im Raum?
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 32: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/32.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Bewegung eines Würfels
Bewegung wird durch simple Addition bewerkstelligt
Addition erfolgt für jeden Punkt unabhängig
z.B. für P := (x ,y ,z) x
y
z
+
−50
0
=
x−5
y
z
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 33: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/33.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Bewegung eines Würfels
Bewegung wird durch simple Addition bewerkstelligt
Addition erfolgt für jeden Punkt unabhängig
z.B. für P := (x ,y ,z) x
y
z
+
−50
0
=
x−5
y
z
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 34: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/34.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Bewegung eines Würfels
Bewegung wird durch simple Addition bewerkstelligt
Addition erfolgt für jeden Punkt unabhängig
z.B. für P := (x ,y ,z) x
y
z
+
−50
0
=
x−5
y
z
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 35: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/35.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Gliederung
1 Ein paar Begri�e zum AnfangGame EngineGrundlagen 3D-Engine
2 Mathematische Grundlagen3D-2D-TransformationTranslation im RaumRotation im Raum
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 36: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/36.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Wie dreht man ein Objekt in einer3D-Engine?
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 37: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/37.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation von Objekten
Problemstellung:
Mittelpunkt (0,0,0) ist im Zentrum der Kiste
Kiste soll um eine Achse rotiert werden (hier Y-Achse)
Lösung:
Rotation der (Eck-)Punkte der Kiste
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 38: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/38.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation von Objekten
Problemstellung:
Mittelpunkt (0,0,0) ist im Zentrum der Kiste
Kiste soll um eine Achse rotiert werden (hier Y-Achse)
Lösung:
Rotation der (Eck-)Punkte der Kiste
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 39: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/39.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation von Eckpunkten
Bei genauer Betrachtung fällt auf
Bei der Rotation um die y-Achse verändern sich die y-Wertenicht
Rotation um y-Achse ist zweidimensional lösbar
Betrachtung der Szene "von oben"
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 40: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/40.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation von Eckpunkten
Bei genauer Betrachtung fällt auf
Bei der Rotation um die y-Achse verändern sich die y-Wertenicht
Rotation um y-Achse ist zweidimensional lösbar
Betrachtung der Szene "von oben"
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 41: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/41.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation von Eckpunkten
Bei genauer Betrachtung fällt auf
Bei der Rotation um die y-Achse verändern sich die y-Wertenicht
Rotation um y-Achse ist zweidimensional lösbar
Betrachtung der Szene "von oben"
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 42: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/42.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 1
Skizze und Formelsammlung
(1) sin(α) = zr
(2) cos(α) = xr
(3) sin(β ) = nzr
(4) cos(β ) = nxr
(5) β = α + τ
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 43: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/43.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 1
Skizze und Formelsammlung
(1) sin(α) = zr
(2) cos(α) = xr
(3) sin(β ) = nzr
(4) cos(β ) = nxr
(5) β = α + τ
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 44: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/44.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 1
Skizze und Formelsammlung
(1) sin(α) = zr
(2) cos(α) = xr
(3) sin(β ) = nzr
(4) cos(β ) = nxr
(5) β = α + τ
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 45: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/45.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 1
Skizze und Formelsammlung
(1) sin(α) = zr
(2) cos(α) = xr
(3) sin(β ) = nzr
(4) cos(β ) = nxr
(5) β = α + τ
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 46: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/46.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 1
Skizze und Formelsammlung
(1) sin(α) = zr
(2) cos(α) = xr
(3) sin(β ) = nzr
(4) cos(β ) = nxr
(5) β = α + τ
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 47: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/47.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 1
Skizze und Formelsammlung
(1) sin(α) = zr
(2) cos(α) = xr
(3) sin(β ) = nzr
(4) cos(β ) = nxr
(5) β = α + τ
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 48: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/48.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 2
(1) sin(α) = z
r
(2) cos(α) = x
r
(3) sin(β) = nz
r
(4) cos(β) = nx
r
(5) β = α + τ
(6) Additionstheorem:sin(α + τ) = sin(α) ·cos(τ)+cos(α) · sin(τ)
Anweisung Berechnung
(3) nach nz umstellen nz = sin(β ) · r(5) anwenden nz = sin(α + τ) · r
(6) anwenden nz = [sin(α) · cos(τ)+ cos(α) · sin(τ)] · r
versuchen α loszuwerden nz = [ zr· cos(τ)+ x
r· sin(τ)] · r
r rauskürzen nz = z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 49: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/49.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 2
(1) sin(α) = z
r
(2) cos(α) = x
r
(3) sin(β) = nz
r
(4) cos(β) = nx
r
(5) β = α + τ
(6) Additionstheorem:sin(α + τ) = sin(α) ·cos(τ)+cos(α) · sin(τ)
Anweisung Berechnung
(3) nach nz umstellen nz = sin(β ) · r
(5) anwenden nz = sin(α + τ) · r
(6) anwenden nz = [sin(α) · cos(τ)+ cos(α) · sin(τ)] · r
versuchen α loszuwerden nz = [ zr· cos(τ)+ x
r· sin(τ)] · r
r rauskürzen nz = z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 50: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/50.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 2
(1) sin(α) = z
r
(2) cos(α) = x
r
(3) sin(β) = nz
r
(4) cos(β) = nx
r
(5) β = α + τ
(6) Additionstheorem:sin(α + τ) = sin(α) ·cos(τ)+cos(α) · sin(τ)
Anweisung Berechnung
(3) nach nz umstellen nz = sin(β ) · r(5) anwenden nz = sin(α + τ) · r
(6) anwenden nz = [sin(α) · cos(τ)+ cos(α) · sin(τ)] · r
versuchen α loszuwerden nz = [ zr· cos(τ)+ x
r· sin(τ)] · r
r rauskürzen nz = z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 51: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/51.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 2
(1) sin(α) = z
r
(2) cos(α) = x
r
(3) sin(β) = nz
r
(4) cos(β) = nx
r
(5) β = α + τ
(6) Additionstheorem:sin(α + τ) = sin(α) ·cos(τ)+cos(α) · sin(τ)
Anweisung Berechnung
(3) nach nz umstellen nz = sin(β ) · r(5) anwenden nz = sin(α + τ) · r
(6) anwenden nz = [sin(α) · cos(τ)+ cos(α) · sin(τ)] · r
versuchen α loszuwerden nz = [ zr· cos(τ)+ x
r· sin(τ)] · r
r rauskürzen nz = z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 52: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/52.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 2
(1) sin(α) = z
r
(2) cos(α) = x
r
(3) sin(β) = nz
r
(4) cos(β) = nx
r
(5) β = α + τ
(6) Additionstheorem:sin(α + τ) = sin(α) ·cos(τ)+cos(α) · sin(τ)
Anweisung Berechnung
(3) nach nz umstellen nz = sin(β ) · r(5) anwenden nz = sin(α + τ) · r
(6) anwenden nz = [sin(α) · cos(τ)+ cos(α) · sin(τ)] · r
versuchen α loszuwerden nz = [ zr· cos(τ)+ x
r· sin(τ)] · r
r rauskürzen nz = z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 53: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/53.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
2D-Rotation von Eckpunkten - Herleitung 2
(1) sin(α) = z
r
(2) cos(α) = x
r
(3) sin(β) = nz
r
(4) cos(β) = nx
r
(5) β = α + τ
(6) Additionstheorem:sin(α + τ) = sin(α) ·cos(τ)+cos(α) · sin(τ)
Anweisung Berechnung
(3) nach nz umstellen nz = sin(β ) · r(5) anwenden nz = sin(α + τ) · r
(6) anwenden nz = [sin(α) · cos(τ)+ cos(α) · sin(τ)] · r
versuchen α loszuwerden nz = [ zr· cos(τ)+ x
r· sin(τ)] · r
r rauskürzen nz = z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 54: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/54.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation um Y-Achse
Die Formel für den neuen x-Wert ergibt sich analog:nx = x · cos(τ)− z · sin(τ).
Insgesamt ergibt sich für die Rotation um den Winkel τ (umdie y-Achse):
P =
x
y
z
Rotation−→ NP =
x · cos(τ)− z · sin(τ)y
z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 55: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/55.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
3D-2D-TransformationTranslation im RaumRotation im Raum
Rotation um Y-Achse
Die Formel für den neuen x-Wert ergibt sich analog:nx = x · cos(τ)− z · sin(τ).
Insgesamt ergibt sich für die Rotation um den Winkel τ (umdie y-Achse):
P =
x
y
z
Rotation−→ NP =
x · cos(τ)− z · sin(τ)y
z · cos(τ)+ x · sin(τ)
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 56: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/56.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Fazit
Ein 3D-Objekt besteht aus einer Sammlung von Eckpunkten
Für Darstellung, Bewegung und Drehung von 3D-Objektenreicht Schulmathematik
Wichtig
Wer eine eigene 3D-Engine schreiben möchte, sollte zumindest einwenig Mathematik beherrschen!
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 57: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/57.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Fazit
Ein 3D-Objekt besteht aus einer Sammlung von Eckpunkten
Für Darstellung, Bewegung und Drehung von 3D-Objektenreicht Schulmathematik
Wichtig
Wer eine eigene 3D-Engine schreiben möchte, sollte zumindest einwenig Mathematik beherrschen!
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 58: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/58.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Fazit
Ein 3D-Objekt besteht aus einer Sammlung von Eckpunkten
Für Darstellung, Bewegung und Drehung von 3D-Objektenreicht Schulmathematik
Wichtig
Wer eine eigene 3D-Engine schreiben möchte, sollte zumindest einwenig Mathematik beherrschen!
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 59: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/59.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Weiterführende Literatur
Computer Graphics: Principles and PracticeFoley et al., Addison-Wesley Professional, ISBN: 9780201848403
3D Game Engine DesignDavid H. Eberly, Morgan Kaufmann, ISBN: 9780122290633
Tricks of the 3D Game Programming GurusAndre LaMothe, Sams, ISBN: 9780672318351
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines
![Page 60: Einführung in die Grundlagen von 3D-Engines](https://reader034.vdocuments.mx/reader034/viewer/2022052601/628cc613c9a96455152bdfc4/html5/thumbnails/60.jpg)
Ein paar Begri�e zum AnfangMathematische Grundlagen
Zusammenfassung
Ende Teil 1
M. Kle�mann, M. Muckho� Einführung in die Grundlagen von 3D-Engines