Computer Graphik (CS231) Projektübungsblatt 3
|
|
- Renate Böhm
- vor 6 Jahren
- Abrufe
Transkript
1 UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Bernoullistrasse 16 CH 456 Basel Clemens Blumer Tobias Maier Fabian Brix Computer Graphik (CS231) Projektübungsblatt 3 Ausgabe in Woche 12 ( ). Vorführung der laufenden Programme im Tutorium Woche 14 ( ). Zu erreichende Mindestpunktzahl: 13 von 25 Punkten OpenGL arbeitet nach dem Prinzip einer Statemachine. Das bedeutet, dass nicht bei jedem Funktionsaufruf alle Parameter gesetzt werden müssen, sondern viele Variablen global gehalten werden. Der Grund liegt darin, dass man z. B. nicht für jeden Vertex die Transformation an die Grafikkarte schicken möchte (was langsam wäre) sondern lieber einmal die Transformation festlegt und alle folgenden Vertices ensprechend verarbeitet. In dieser Aufgabe soll die Koordinatentransformation von OpenGL emuliert werden. Auf den kommenden Aufgabenblättern werden wir diese Idee weiterverfolgen und zusätzliche Funktionalität zur Statemachine hinzufügen. Die Beleuchtung und Texturierung der Dreiecke wird dann auf den Blättern 4 und 5 behandelt. Auf diesem Aufgabenblatt werden wir den Rasterizer für die Dreiecke von Aufgabenblatt 1 weiter verwenden. Konkret bedeutet das für diese Aufgabe: Wir setzten die Statemachine in einen bestimmten Zustand, indem wir die Grösse des framebuffers und Parameter für die Transformation der Vertices festlegen. Danach werden die (Objekt-)Koordinaten gegeben durch tarray<f3vector> vertex und die dazugehörige Farbe tarray<frgba> color durch die Renderingpipeline geschickt. Zusätzlich gibt es sechs Listen mit Indizes. Je nach Art der Liste werden verschiedene Primitiven in den Framebuffer gerendert: Punkte (tarray<int> pvi für die Vertices bzw. tarray<int> pci für die Farben), Linien (tarray<tuple2> lvi, tarray<tuple2> lci) und Dreiecke (tarray<tuple3> tvi, tarray<tuple3> tci) Alle diese Listen werden in der Klasse Mesh verwaltet. Diese Klasse wird von uns vorgegeben. Ausserdem stellen wir einen OBJReader zur Verfügung, mit dem man Objekte, die im Alias/Wavefront-Objectformat (*.obj) gespeichert sind, in die Klasse Mesh einlesen kann. Wir haben die Renderingpipeline so gebaut, dass sie OpenGL-kompatibel ist, d.h., die zu implementierenden Methoden entsprechen semantisch OpenGL-Funktionen. Für eine Erklärung der
2 2 einzelnen zu implementierenden Transformationen verweisen wir auf die Vorlesung, Foliesatz 6. Im StateMachineRenderer werden folgende Buffer verwendet: timage<float> zbuffer; Depth buffer: Hier ist zu jedem Pixel der Abstand zur near- Clippingplane gespeichert (Aufgabe 5). timage<frgba> framebuffer; Hier wird das fertige Bild hineingerendert. timage<f3vector> bbuffer; Zum Testen können Sie hier die Baryzentrischen Koordinaten λ 1, λ 2, λ 3 speichern (Freiwillig). Aufgabe 1 - Modelview Matrix (6 Punkte ) Fügen Sie der KlasseStateMachineRenderer aus Aufgabenblatt 1 folgende Funktionaliät hinzu: Die Modelview Matrix M wird per default (also im Konstruktor der Klasse StateMachineRenderer) auf die Einheitsmatrix gesetzt: 1 M = 1 1 Wenn diese Matrix als Modelview Matrix verwendet wird, bedeutet dass, dass die Kamera im Urprung steht, in Richtung der negativen z-achse schaut und aufrecht steht (d.h (, 1, ) T ist oben). Der Befehl setrotationx(float alpha) erzeugt eine Matrix für eine Rotation der Objekte um die x-achse (mit Rotationswinkel α) und multipliziert die aktuelle Modelview Matrix damit: 1 M := M cos α sin α sin α cos α Der Befehl void setrotationy(float alpha) erzeugt eine Matrix für eine Rotation der Objekte um die y-achse (mit Rotationswinkel α) und multipliziert die aktuelle Modelview Matrix damit: cos α sin α M := M 1 sin α cos α Der Befehl void setrotationz(float alpha) erzeugt eine Matrix für eine Rotation der Objekte um die z-achse (mit Rotationswinkel α) und multipliziert die aktuelle Modelview Matrix damit: cos α sin α M := M sin α cos α 1
3 (freiwillig:) Der Befehl void setrotation(float alpha, const f3vector& axis) erzeugt eine Matrix für eine Rotation der Objekte um die Achse durch die Punkte ((,, ) T ) und ((x, y, z) T ) und multipliziert die aktuelle Modelview Matrix damit. Der Befehl void settranslation(const f3vector& offset) erzeugt eine Matrix für eine Translation der Objekte und multipliziert die aktuelle Modelview Matrix damit: 1 x M = M 1 y 1 z Der Befehl void setscale(const f3vector& scale) erzeugt eine Matrix für eine Skalierung der Objekte und multipliziert die aktuelle Modelview Matrix damit: x M = M y z 3 Der Befehl void multmodelviewmatrix(const f4matrix& A) Modelview Matrix mit einer Matrix A: multipliziert die aktuelle M := M A Aufgabe 2 - Projektionsmatrix (3 Punkte ) Fügen Sie der Klasse StateMachineRenderer folgende Funktionaliät hinzu: Die Projektionsmatrix P wird per default ebenfalls auf die Einheitsmatrix gesetzt: 1 P = 1 1 Der Befehl setfrustum(float l,float r,float b,float t,float n,float f) erzeugt eine Matrix für die perspektivische Projektion und setzt die aktuelle Projektionsmatrix: P := 2n r l r+l 2n t b r l t+b t b f+n f n 1 2fn f n
4 Aufgabe 3 - Koordinaten Transformation (6 Punkte ) 4 Ziel dieser Aufgabe ist es, die OpenGL-Renderingpipeline zu implementieren. Dies soll in der Methode render() der Klasse StateMachineRenderer passieren. Das Objekt, das gerendert werden soll, liegt anfangs in Objektkoordinaten (x o, y o, z o ) T in dem Array tarray<f3vector> vertex der Klasse Mesh vor. Schritt1: Modelview Transformation Die Objektkoordinaten werden in Eye Koordinaten (Membervariable tarray<f4vector> eyecoord der Klasse StateMachineRenderer) transformiert. x e y e z e w e = M Schritt2: Projektion Die Eye Koordinaten werden in Clip Koordinaten (tarray<f4vector> clipcoord) transformiert. x c y c z c = P Schritt3: Perspektivische Division Die Normalized device Koordinaten (tarray<f3vector> normdevcoord) sind dann: x d y d = z d Bemerkung: Nach dieser Transforamtion befinden sich die sichtbaren Koordinaten im folgenden Bereich: (x d, y d, z d ) [ 1, 1] [ 1, 1] [, 1] x o y o z o 1 x e y e z e w e x c y c z c
5 Schritt4: Viewport Transformation Hierzu wird die Breite (p x ) und Höhe (p y ) des Fensters in Pixeln benötigt. (o x, o y ) ist das Zentrum des Bildes, normalerweise: (o x, o y ) = ( px 2, py 2 ). x w y w z w = p x2 x d + o x p y 2 y d + o y f n 2 z d + n+f 2 Dabei ist zu beachten, dass die Koordinaten hier so gewählt sind, wie in der Mathemathik üblich: die y-achse ziegt nach oben. Dagegen ist bei timage der Ursprung oben links, wie bei Matrizen üblich. Die fertig transformierten Koordinaten werden in tarray<f3vector> viewcoord gespeichert. Schritt5: Rastern Die Arrays für Punkte (tarray<int> pvi), Linien (tarray<tuple2> lvi) und Dreiecke (tarray<tuple3> tvi) enthalten die Indizes für die Koordinaten in tarray<f3vector> viewcoord. Die Farben an den jeweiligen End- bzw. Eckpunkten sind durch die Indizes tarray<int> pci, tarray<tuple2> lci, tarray<tuple3> tci gegeben. Verwenden Sie dazu Ihren Rasterizer aus Aufgabenblatt 1. Beispiel für die Verwendung der Indizes: mesh.color[mesh.pci[i]] 5 Aufgabe 4 - Beispiel ( Punkte) Um das Debugging zu erleichtern geben wir hier eine Menge von Koordinaten (die die Ecken einer Pyramide beschreiben). Testen Sie ihren Algorithmus mit dem Testprogramm Transformation Pipeline Test und vergleichen Sie die Ausgabe mit tests.txt. Aufgabe 5 - zbuffer (4 Punkte ) Verwenden Sie die z-komponente der Window Koordinaten um einen zbuffer zu implementieren. Verwenden Sie dazu den zbuffer. Setzen Sie den zbuffer in der Methode setframebuffersize auf die grösse des Framebuffers. In der Methode clear() wird der zbuffer mit dem Wert der far-clipping-plane (c far) initalisiert. Ändern Sie dann Ihre Shaderfunktionen, sodass ein Pixel nur dann gezeichnet wird, wenn nicht bereits ein grösserer Wert im zbuffer eingetragen ist. Stellen Sie sicher, dass nur Punkte gezeichnet werden, deren zbuffer-wert im gültigen Bereich n < z w < f liegt. Aufgabe 6 - Quaternionen (6 Punkte) Ziele dieser Aufgabe ist eine Vertiefung der Vorlesung im Bereich Quaternionen und die Imple-
6 Allgemeine Hinweise Um ein an einem Bildschirm zu betrachtendes Objekt interaktiv zu rotieren eignet sich das Modell eines Trackballs sehr gut. Daher soll in dieser Übung ein sogenannt virtueller Trackball realisiert werden, indem die Bewegungen einer Maus entsprechend interpretiert werden. Wie in der Folge noch erklärt, müssen dazu die zweidimensionalen Mauskoordinaten in geeigneter Form auf einen virtuellen 6 Trackball mentierung projiziert eines werden. virtuellen Trackballs mittels Quaternionen q = s + v 1 i + v 2 j + v 3 k. Ein Quaternion wird in dieser Übung als Vektor quat[4] vom Typ float behandelt. Dabei haben die Um ein an einem Bildschirm zu betrachtendes Objekt interaktiv zu rotieren eignet sich das einzelnen Koeffizienten die folgende Bedeutung: q[]=x; q[1]=y; q[2]=z und q[3]=c; Im Gegensatz Modell eines zu den Trackballs Vorlesungsunterlagen sehr gut. Daher und soll allen in dieser mathematischen Übung ein Abhandlungen sogenannt virtueller liegt der Trackball Realteil eines realisiert Quaternions werden, also indem an der dieletzten Bewegungen Stelle. Dies einerhat Maus den entsprechend Vorteil, dass alle interpretiert Operationen werden. auf dem Wie Imaginärteil der Folge mittels nochvektoroperationen erklärt, müssen dazu direkt die auf zweidimensionalen q durchgeführt werden Mauskoordinaten können, ohne indass geeigneter Addressarith- Form in metik auf einen notwendig virtuellen wird. Trackball projiziert werden. Das Codegerüst kann wie üblich direkt von der Webseite geladen, in einem persönlichen Verzeichnis gespeichert Das allgemeine und mit Vorgehen der Visual fürc++ die6. Realisierung Programmierumgebung des Trackballs bearbeitet kann wie werden. folgt beschrieben werden: Aus einer Mausbewegung im Viewer-Window muss die Rotationsachse a sowie der Rotationswinkel φ einer virtuellen Kugel ermittelt werden. Die Rotationsachse ergibt sich aus dem Webseite Kreuzprodukt der Vorlesung: der beiden Vektoren x und y, die sich wiederum aus der Projektion der Koordinaten im Viewer-Window auf den virtuellen Trackball ergeben. Der Rotationswinkel kann mittels einfacher trigonometrischer Zusammenhänge berechnet werden. Aus der Rotationsachse sowie dem Rotationswinkel kann ein Quaternion gebildet werden, welches die Rotation vollständig Das allgemeine Vorgehen für die Realisierung des Trackballs kann wie folgt beschrieben werden: Aus beschreibt. Für jedes Teilstück einer Bewegung kann ein neues Quaternion berechnet werden, einer Mausbewegung im Viewer-Window respektive aus einem linearen Teilstück einer kontinuierlichen um die Bewegung aktuelle Rotation muss die zu Rotationsachse beschreiben. Die a sowie einzelnen der Rotationswinkel Quaternionen müssen einer aufmultipliziert virtuellen Kugel ermittelt werden, damit werden. eine Die längere Rotationsachse Bewegung ergibt simuliert sich aus werden dem Kreuzprodukt kann. der beiden Vektoren x und y, die sich wiederum aus der Projektion der Koordinaten im Viewer-Window auf den virtuellen Trackball Um ergeben. das Objekt Der im Rotationswinkel Viewer tatsächlich kann zu drehen, mittels muss einfacher an StateMachineRenderer trigonometrischer Zusammenhänge eine Rotationsmatrixwerden. übergeben werden. Dies bedeutet, dass das berechnete Quaternion in eine Rotations- berechnet Aus matrix der Rotationsachse umgewandelt werden sowie dem muss. Rotationswinkel kann ein Quaternion gebildet werden, welches die Ressourcen Grundlagen Trackball x y Rotationswinkel x y y Viewer-Window Rotationsachse a Ein Teil der benötigten Funktionen ist in der Klassen Trackball<T> und Quaternion<T> (Trackball.h und Trackball.icc) bereits implementiert. Ausserdem ist in GLWindow die Benutzung der Klasse Trackball<T> demonstriert. Implementieren bzw. vervollständigen Sie die folgenden Methoden: Die Methode project(int x, int y) der Klasse trackball<t>. Hier muss die Mauskoordinate in eine 3D-Koordinate auf dem virtuellen Trackball umgewandelt werden. Dabei sollen die Bildschirmkoordinaten auf folgenden, quadratischen Bereich abgebildet werden: (x, y) [ 1, 1] [ 1, 1]. Dadurch vereinfacht sich die Behandlung von nicht quadratischen Bildschirmen und der Bildschirm passt immer in den vorgegebenen, virtuellen Trackball (radius = 2). Den Konstruktor der Klasse quaternion<t>, der ein Quaternion aus einer Rotationsachse
7 a und dem Rotationswinkel φ baut. 7 s = cos( φ 2 ) v 1 = a x sin( φ 2 ) v 2 = a y sin( φ 2 ) v 3 = a z sin( φ 2 ) Den Operator operator*= der Klasse quaternion<t>, der eine Quaternionen-Multiplikation durchführt (siehe Vorlesung). Die Methode getmatrix() der Klasse quaternion<t>, die ein Quaternion in eine Rotationsmatrix umwandelt: 1 2(v2 2 + v2 3 ) 2(v 1v 2 sv 3 ) 2(v 3 v 1 + v 2 s) M = 2(v 1 v 2 + v 3 s) 1 2(v3 2 + v2 1 ) 2(v 2v 3 v 1 s) 2(v 3 v 1 v 2 s) 2(v 2 v 3 + v 1 s) 1 2(v2 2 + v2 1 ) Die Methode mousemove() der Klasse trackball<t>, welche die Rotationsachse a und den Rotationswinkel φ aus der Mausbewegung und die neue Rotationsmatrix berechnet. Sie können die Variable t3vector<t> last projected verwenden um die letzten virtuellen Trackballkoordinaten zwischenzuspeichern. blatt2/include/quaternion.h blatt2/include/trackball.h
Computer Graphik (CS231) Installation der Software
UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Bernoullistrasse 16 CH 4056 Basel Clemens Blumer Tobias Maier Fabian Brix http://informatik.unibas.ch/lehre/fs13/cs231/ Computer
MehrComputer Graphik (CS231) - Installation der Software
UNIVERSITÄT BASEL Prof. Dr. Thomas Vetter Departement Mathematik und Informatik Spiegelgasse 1 CH 4051 Basel Tobias Maier (tobias.maier@unibas.ch) Jasenko Zivanov (jasenko.zivanov@unibas.ch) Marc Schmidlin
MehrComputer Graphik. Mitschrift von www.kuertz.name
Computer Graphik Mitschrift von www.kuertz.name Hinweis: Dies ist kein offizielles Script, sondern nur eine private Mitschrift. Die Mitschriften sind teweilse unvollständig, falsch oder inaktuell, da sie
MehrTransformationen im 3D-Raum
Thomas Jung Repräsentation von 3D-Oberflächen Aufbau von Szenen Transformationen im 3D-Raum Projektionstranformationen Anwendung in OpenGL Geometrietransformationen bilden die Basis für die Computergrafik
MehrErinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung
Erinnerung Arbeitsschritte der Computergraphik Modellierung Animation Generierung Ausgabemedium Graphik/-Pipeline Wandelt die Beschreibung einer Szene im dreidimensionalen Raum in eine zweidimensionale
MehrVHDL - Grundlagen des Pointrenderings
VHDL - Grundlagen des Pointrenderings Marc Reichenbach, Timo Nieszner Informatik 3 / Rechnerarchitektur Universität Erlangen Nürnberg 2013 1 / 25 Rendern von Dreiecksnetzen Quelle: Inf9, CG-Slides grobmaschiges
MehrSoftwareprojekt Spieleentwicklung
Softwareprojekt Spieleentwicklung Prototyp I (2D) Prototyp II (3D) Softwareprojekt 12.04. 19.04. 26.04. 03.05. 31.05. Meilenstein I 28.06. Meilenstein II Prof. Holger Theisel, Tobias Günther, OvGU Magdeburg
MehrWorkshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar
Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung
MehrPraktikum: Spieleengine im Eigenbau
Seite 1/17 Praktikum Spieleengine im Eigenbau Alexander Weggerle, Tobias Bäuerle 19.10.09 http://www.saschawillems.de Praktikum: Spieleengine im Eigenbau Seite 2/17 Praktikum Spieleengine im Eigenbau Alexander
Mehr3D-Transformationen. Kapitel Translation Skalierung
Kapitel 13 3D-Transformationen Wie im weidimensionalen Fall, werden die Definitionspunkte der Objekte als Spaltenvektoren mit homogener Koordinate geschrieben. Die notwendigen Transformationen werden wieder
MehrKoordinatensysteme und Clipping
Koordinatensysteme und Clipping Michael Olp Inhaltsverzeichnis 1 Einführung in die perspektivische Projektion 1 1.1 Projektion von Liniensegmenten....... 1 2 Koordinatensysteme 2 2.1 Modeling....................
MehrKapitel 2: Mathematische Grundlagen
[ Computeranimation ] Kapitel 2: Mathematische Grundlagen Prof. Dr. Stefan M. Grünvogel stefan.gruenvogel@fh-koeln.de Institut für Medien- und Phototechnik Fachhochschule Köln 2. Mathematische Grundlagen
Mehry x x y ( 2x 3y + z x + z
Matrizen Aufgabe Sei f R R 3 definiert durch ( ) x 3y x f = x + y y x Berechnen Sie die Matrix Darstellung von f Aufgabe Eine lineare Funktion f hat die Matrix Darstellung A = 0 4 0 0 0 0 0 Berechnen Sie
MehrBrückenkurs Mathematik. Mittwoch Freitag
Brückenkurs Mathematik Mittwoch 5.10. - Freitag 14.10.2016 Vorlesung 4 Dreiecke, Vektoren, Matrizen, lineare Gleichungssysteme Kai Rothe Technische Universität Hamburg-Harburg Montag 10.10.2016 0 Brückenkurs
MehrMatrizen. Jörn Loviscach. Versionsstand: 12. April 2010, 19:00 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung.
Matrizen Jörn Loviscach Versionsstand: 12. April 2010, 19:00 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. 1 Matrix Ein rechteckige Anordnung von mathematischen Objekten
MehrEinleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7
Sonja Hunscha - Koordinatensysteme 1 Inhalt Einleitung 2 1 Koordinatensysteme 2 1.1 Kartesisches Koordinatensystem 2 1.2 Polarkoordinaten 3 1.3 Zusammenhang zwischen kartesischen und Polarkoordinaten 3
MehrDefinition, Abbildungsmatrix, Spiegelung, Projektion
Bau und Gestaltung, Mathematik 2, T. Borer Aufgaben 5-2/ Aufgaben 5 Lineare Abbildungen Definition, Abbildungsmatrix, Spiegelung, Projektion Lernziele - beurteilen können, ob eine gegebene Abbildung linear
Mehr2D-Transformationen. Kapitel 6. 6.1 Translation. 6.2 Skalierung
Kapitel 6 2D-Transformationen Mit Hilfe von Transformationen ist es möglich, die Position, die Orientierung, die Form und die Größe der grafischen Objekte zu manipulieren. Transformationen eines Objekts
MehrKapitel 3: Geometrische Transformationen
[ Computeranimation ] Kapitel 3: Geometrische Transformationen Prof. Dr. Stefan M. Grünvogel stefan.gruenvogel@fh-koeln.de Institut für Medien- und Phototechnik Fachhochschule Köln 3. Geometrische Transformationen
Mehr3D-Transformationen. Kapitel Translation Skalierung
Kapitel 3 3D-Transformationen Wie im weidimensionalen Fall, werden die Definitionspunkte der Objekte als Spaltenvektoren mit homogener Koordinate geschrieben. Die notwendigen Transformationen werden wieder
MehrÜbungen Mathematik I, M
Übungen Mathematik I, M Übungsblatt, Lösungen (Stoff aus Mathematik 0).0.0. Berechnen Sie unter Verwendung des binomischen Lehrsatzes ( x + y) 7 Lösung: Nach dem binomischen Lehrsatz ist ( x + y) 7 = 7
MehrSeminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen. Hermann Schwarz Marko Pilop
Seminar 3-D Grafik Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen Hermann Schwarz Marko Pilop 2003-11-20 http://www.informatik.hu-berlin.de/~pilop/3d_basics.pdf {hschwarz pilop}@informatik.hu-berlin.de
MehrWiMa-Praktikum 1. Woche 8
WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und
MehrLineare Abbildungen (Teschl/Teschl 10.3, 11.2)
Lineare Abbildungen (Teschl/Teschl.3,.2 Eine lineare Abbildung ist eine Abbildung zwischen zwei Vektorräumen, die mit den Vektoroperationen Addition und Multiplikation mit Skalaren verträglich ist. Formal:
MehrEVC Repetitorium Blender
EVC Repetitorium Blender Michael Hecher Felix Kreuzer Institute of Computer Graphics and Algorithms Vienna University of Technology INSTITUTE OF COMPUTER GRAPHICS AND ALGORITHMS Filter Transformationen
MehrVU Einführung in Visual Computing 1. Test Gruppe A
26.04.2013 186.822 VU Einführung in Visual Computing 1. Test Gruppe A Matrikelnummer: Nachname: Punkte: Studienkennzahl: Vorname: Bitte tragen sie Ihre Matrikelnummer, Studienkennzahl sowie Vor- und Nachname
MehrÜbungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrKapitel 3. Transformationen
Oyun Namdag Am 08.11.2007 WS 07/08 Proseminar Numerik: Mathematics for 3D game programming & computer graphics Dozenten: Prof. Dr. V. Schulz, C. Schillings Universität Trier Kapitel 3 Transformationen
MehrProbelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering
Probelektion zum Thema Shadow Rendering Shadow Maps Shadow Filtering Renderman, 2006 CityEngine 2011 Viewport Real reconstruction in Windisch, 2013 Schatten bringen viel Realismus in eine Szene Schatten
MehrUniversität Osnabrück Fachbereich Mathematik / Informatik. 5. Vorlesung ( )
Universität Osnabrück Fachbereich Mathematik / Informatik 5. Vorlesung (06.05.2013) Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc. Game Application Layer Rückblick Game
MehrWertebereich und Genauigkeit der Zahlendarstellung
Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden
Mehr1 Fraktale Eigenschaften der Koch-Kurve
Anhang Inhaltsverzeichnis Fraktale Eigenschaften der Koch-Kurve iii. Einführung.................................. iii.2 Defintion.................................... iii.3 Gesamtlänge der Koch-Kurve........................
Mehr++ + = 0 so erhält man eine quadratische Gleichung mit zwei Variablen dx+ey+f = 0 1.1
Hauptachsentransformation. Einleitung Schneidet man den geraden Kreiskegel mit der Gleichung = + und die Ebene ++ + = 0 so erhält man eine quadratische Gleichung mit zwei Variablen +2 + +dx+ey+f = 0. Die
MehrPlanare Projektionen und Betrachtungstransformation. Quelle: Angel (2000)
Planare Projektionen und Betrachtungstransformation Quelle: Angel (2) Gliederung Einführung Parallelprojektionen Perspektivische Projektionen Kameramodell und Betrachtungstransformationen Mathematische
MehrComputergraphik Grundlagen
Computergraphik Grundlagen V. Die Rendering-Pipeline Prof. Stefan Schlechtweg Hochschule Anhalt Fachbereich Informatik Inhalt Lernziele 1. Der Begriff Rendering 2. Die Rendering-Pipeline Geometrische Modellierung
MehrBrückenkurs Mathematik
Brückenkurs Mathematik 6.10. - 17.10. Vorlesung 3 Geometrie Doris Bohnet Universität Hamburg - Department Mathematik Mi 8.10.2008 1 Geometrie des Dreiecks 2 Vektoren Länge eines Vektors Skalarprodukt Kreuzprodukt
MehrMatrizen. Spezialfälle. Eine m nmatrix ist ein rechteckiges Zahlenschema mit. m Zeilen und n Spalten der Form. A = (a ij ) =
Matrizen Eine m nmatrix ist ein rechteckiges Zahlenschema mit m Zeilen und n Spalten der Form a 11 a 12 a 1n A = a ij = a 21 a 22 a 2n a m1 a m2 a mn Dabei sind m und n natürliche und die Koezienten a
MehrR-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.
R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung. Carsten Szardenings c.sz@wwu.de 7. Mai 2015 A 2 B 3 C 4 D 5 F 6 R 16 S 17 V 18 W 19 Z 20 H 7 I 8 K 9
MehrKomplexe Zahlen. (a, b) + (c, d) := (a + c, b + d) (a, b) (c, d) := (a c b d, a d + b c)
Komplexe Zahlen Wir betrachten Zahlenpaare (a, b, (c, d R und definieren eine Addition und eine Multiplikation wie folgt: (a, b + (c, d := (a + c, b + d (a, b (c, d := (a c b d, a d + b c Satz: R mit dieser
MehrProgrammieren mit DirectX
2D 3D Programmieren mit DirectX Teil 3: Malte Ried Fachhochschule Gießen-Friedberg 30. Oktober 2005 Inhalt 2D 3D 1 2D 2 3D 3 2D 3D Bis jetzt Windows-Fenster, das man schließen kann initialisiertes Direct3D
MehrLineare Algebra. Mathematik II für Chemiker. Daniel Gerth
Lineare Algebra Mathematik II für Chemiker Daniel Gerth Überblick Lineare Algebra Dieses Kapitel erklärt: Was man unter Vektoren versteht Wie man einfache geometrische Sachverhalte beschreibt Was man unter
MehrComputer-Graphik I Transformationen & Viewing
lausthal Motivation omputer-raphik I Transformationen & Viewing Man möchte die virtuelle 3D Welt auf einem 2D Display darstellen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und 27.5.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrOpenGL. (Open Graphic Library)
OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation
Mehr1 Matrizenrechnung zweiter Teil
MLAN1 1 Literatur: K. Nipp/D. Stoffer, Lineare Algebra, Eine Einführung für Ingenieure, VDF der ETHZ, 4. Auflage, 1998, oder neuer. 1 Matrizenrechnung zweiter Teil 1.1 Transponieren einer Matrix Wir betrachten
MehrComputer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg
Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg Gliederung 6 Endliche Kameras Die Lochkamera Die Projektive Kamera Die projektive Kamera Spalten von P Zeilen von P Hauptpunkt und Hauptachse
MehrKapitel 4: Schattenberechnung
Kapitel 4: Schattenberechnung 1 Überblick: Schattenberechnung Motivation Schattenvolumen Shadow Maps Projektive Schatten 2 Motivation Wesentlich für die Wahrnehmung einer 3D-Szene Eigentlich ein globaler
Mehr(12) Wiederholung. Vorlesung Computergrafik T. Grosch
(12) Wiederholung Vorlesung Computergrafik T. Grosch Klausur 18.7. 14 16 Uhr, Hörsaal 5 (Physik) 2 Zeitstunden 8 Aufgaben Drei Aufgabentypen Übungsaufgaben Wissensfragen zur Vorlesung Transferfragen Unterschiedlicher
Mehr2.2 Projektionen und Kameramodelle
Graphikprog. GRUNDLEGENDE VERFAHREN UND TECHNIKEN. Projektionen und Kameramodelle Nachdem alle Objekte einer Szenerie mittels der besprochenen Transformationen im D-Weltkoordinatensystem platziert sind,
Mehrgeschlossene Schachtel mit einem kleinen Loch
Kameramodellierung Lochkamera Kamerakonstante Kamerazentrum geschlossene Schachtel mit einem kleinen Loch ideale Kamera: Loch hat keine Ausdehnung die Strahlen sind ein Büschel von Geraden Abbildung erfolgt
Mehr1 Transformationen. 1.1 Transformationsmatrizen. Seite 1
Seite 1 1 Transformationen 1.1 Transformationsmatrizen In den folgenden Teilaufgaben sind die Koeffizienten von 4 4 Transformationsmatrizen zur Repräsentation von affinen Abbildungen im R 3 zu bestimmen.
MehrEntwicklung einer Programmbibliothek zur Simulation von Hautdeformation durch Knochen und Muskeln
Entwicklung einer Programmbibliothek zur Simulation von Hautdeformation durch Knochen und Muskeln Universität Koblenz Institut für Computervisualistik Arbeitsgruppe Computergraphik Betreuer und Prüfer
Mehr4. Kapitel 3D Engine Geometry
15.11.2007 Mathematics for 3D Game Programming & Computer Graphics 4. Kapitel 3D Engine Geometry Anne Adams & Katharina Schmitt Universität Trier Fachbereich IV Proseminar Numerik Wintersemester 2007/08
MehrTheoretische Physik 1, Mechanik
Theoretische Physik 1, Mechanik Harald Friedrich, Technische Universität München Sommersemester 2009 Mathematische Ergänzungen Vektoren und Tensoren Partielle Ableitungen, Nabla-Operator Physikalische
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrKörper sind nullteilerfrei
Mathematik I für Informatiker Komplexe Zahlen p. 1 Körper sind nullteilerfrei Für Elemente a, b eines Körpers gilt stets: Aus a b = 0 folgt a = 0 oder b = 0. Beweis: Aus a b = 0 und a 0 folgt also b =
MehrBildtransformationen. Geometrische Transformationen Grauwert-Interpolation
Bildtransformationen Geometrische Transformationen Grauwert-Interpolation Transformation Transformation zwei Schritte geometrische Transformation (Trafo der Koordinaten) Neuberechnung der Pielwerte an
Mehr13. Klasse TOP 10 Grundwissen 13 Geradengleichungen 01
. Klasse TOP 0 Grundwissen Geradengleichungen 0 Punkt-Richtungs-Form Geraden sind gegeben durch einen Aufpunkt A (mit Ortsvektor a) auf der Geraden und einen Richtungsvektor u: x = a + λ u, λ IR. (Interpretation:
MehrObjektorientierte Programmierung
Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren
Mehr3.3. Drehungen und Spiegelungen
3.3. Drehungen und Spiegelungen Drehungen und Spiegelungen in der Ebene Die Multiplikation einer komplexen Zahl z = x + i y (aufgefaßt als Punkt oder Ortsvektor der Ebene) mit der Zahl w = e ( ) = i φ
MehrMathematischer Vorkurs für Physiker WS 2012/13: Vorlesung 1
TU München Prof. P. Vogl Mathematischer Vorkurs für Physiker WS 2012/13: Vorlesung 1 Komplexe Zahlen Das Auffinden aller Nullstellen von algebraischen Gleichungen ist ein Grundproblem, das in der Physik
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrPraktikum 3: Klassen im Zusammenspiel
: Klassen im Zusammenspiel 1. Lernziele Die folgenden, in der Vorlesung behandelten Themen sollen vertieft und angewendet werden: Programmierung Klassen- und Objektmodell Einbinden von externen Bibliotheken
MehrDarstellung runder Objekte in OpenGL ES. 1 Darstellung eines Zylinders oder Kegels. Inhaltsverzeichnis. Berechnen der Punkte.
Seite 1 von 9 Darstellung runder Objekte in OpenGL ES Inhaltsverzeichnis Darstellung runder Objekte in OpenGL ES...1 1Darstellung eines Zylinders oder Kegels...1 Berechnen der Punkte...1 Darstellung als
MehrSymplektische Geometrie
Symplektische Geometrie Def. Eine symplektische Form auf U R 2n ist eine geschlossene, nichtausgeartete 2-Differentialform. }{{}}{{} d.h. dω = 0 wird gleich definiert Wir bezeichnen sie normalerweise mit
MehrAddition, Subtraktion und Multiplikation von komplexen Zahlen z 1 = (a 1, b 1 ) und z 2 = (a 2, b 2 ):
Komplexe Zahlen Definition 1. Eine komplexe Zahl z ist ein geordnetes Paar reeller Zahlen (a, b). Wir nennen a den Realteil von z und b den Imaginärteil von z, geschrieben a = Re z, b = Im z. Komplexe
MehrLineare Algebra: Determinanten und Eigenwerte
: und Eigenwerte 16. Dezember 2011 der Ordnung 2 I Im Folgenden: quadratische Matrizen Sei ( a b A = c d eine 2 2-Matrix. Die Determinante D(A (bzw. det(a oder Det(A von A ist gleich ad bc. Det(A = a b
MehrÜbungskomplex Reelle Zahlen. Rechnen mit Gleitkommazahlen
Übungskomplex Reelle Zahlen Rechnen mit Gleitkommazahlen Hinweise zur Übung Benötigter Vorlesungsstoff Einheiten 1-3 (C-Tutorial) Einheiten Reelle Zahlen 61 Aufgabe Kreisberechnung a) Schreiben Sie zwei
MehrTutorium Mathematik II, M Lösungen
Tutorium Mathematik II, M Lösungen März 03 *Aufgabe Bestimmen Sie durch Hauptachsentransformation Lage und Typ der Kegelschnitte (a) 3x + 4x x + 3x 4x = 0, (b) 3x + 4x x + 3x 4x 6 = 0, (c) 3x + 4x x +
MehrGruppentheorie und Symmetrie in der Chemie
Gruppentheorie und Symmetrie in der Chemie Martin Schütz Institut für theoretische Chemie, Universität Stuttgart Pfaffenwaldring 55, D-70569 Stuttgart Stuttgart, 26. April 2002 Mathematische Definition
MehrProKu Sommersemester 2015 Aufgabenblatt 4
ProKu Sommersemester 2015 Aufgabenblatt 4 Raphael Münster Jordi Paul Adam Kosik Dirk Ribbrock Peter Zajac March 16, 2015 Aufgabe 19: Verbesserte Numerische Lineare Algebra, Speicherverwaltung a) Analysieren
MehrDiskrete Modellierung
Diskrete Modellierung Wintersemester 2016/17 Martin Mundhenk Uni Jena, Institut für Informatik 24. Oktober 2016 3.2 Erzeugen von Datentypen Der Datentyp Charge Charge ist eine Datentyp für geladene Teilchen
MehrVorkurs Mathematik Übungen zu Komplexen Zahlen
Vorkurs Mathematik Übungen zu Komplexen Zahlen Komplexe Zahlen Koordinatenwechsel Aufgabe. Zeichnen Sie die folgende Zahlen zunächst in ein (kartesisches) Koordinatensystem. Bestimmen Sie dann die Polarkoordinaten
Mehr7. Wie lautet die Inverse der Verkettung zweier linearer Abbildungen? 9. Wie kann die Matrixdarstellung einer linearen Abbildung aufgestellt werden?
Kapitel Lineare Abbildungen Verständnisfragen Sachfragen Was ist eine lineare Abbildung? Erläutern Sie den Zusammenhang zwischen Unterräumen, linearer Unabhängigkeit und linearen Abbildungen! 3 Was ist
MehrShadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen
Universität Hamburg Fachbereich Informatik Arbeitsbereich Technische Aspekte Multimodaler Systeme Seminar Informatikanwendungen in Nanotechnologien Betreuer: Bernd Schütz Sommersemester 2014 Shadingalgorithmen
MehrÜbungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
MehrGleichungen dritten und vierten Grades und Konstruktionen mit mehr als Zirkel und Lineal
1 Gleichungen dritten und vierten Grades und Konstruktionen mit mehr als Zirkel und Lineal Holger Stephan Weierstraß Institut für Angewandte Analysis und Stochastic (WIAS) e-mail: stephan@wias-berlin.de
MehrMatrizen und Drehungen
Matrizen und Drehungen 20. Noember 2003 Diese Ausführungen sind im wesentlichen dem Skript zur Vorlesung Einführung in die Theoretische Physik I und II on PD Dr. Horst Fichtner entnommen. Dieses entstand
MehrLineare Algebra und analytische Geometrie I (Unterrichtsfach) Lösungsvorschlag
MATHEMATISCHES INSTITUT DER UNIVERSITÄT MÜNCHEN Dr E Schörner WS / Blatt 6 Übungen zur Vorlesung Lineare Algebra und analytische Geometrie I (Unterrichtsfach) Lösungsvorschlag Wir verwenden das Unterraumkriterium,
MehrFreie Rotation im Raum
Freie Rotation im Raum Quaternionen und Matrizen Inhaltsverzeichnis 1 Grundlagen 2 1.1 Ziel................................................... 2 1.2 Was ist ein Koordinatensystem?..................................
Mehr4 Lineare Abbildungen und Matrizen
Mathematik I für inf/swt, Wintersemester /, Seite 8 4 Lineare Abbildungen und Matrizen 4 Kern und Injektivität 4 Definition: Sei : V W linear Kern : {v V : v } ist linearer eilraum von V Ü68 und heißt
MehrRang einer Matrix. 1-E1 Ma 1 Lubov Vassilevskaya
Rang einer Matrix 1-E1 Ma 1 Lubov Vassilevskaya Unterdeterminante einer nichtquadratischen Matrix M ist eine nichtquadratische 2,3-Matrix: M = 6 2 3 0 5 7 Durch Streichen einer der drei Spalten kann man
MehrMC-Serie 11: Eigenwerte
D-ERDW, D-HEST, D-USYS Mathematik I HS 14 Dr. Ana Cannas MC-Serie 11: Eigenwerte Einsendeschluss: 12. Dezember 2014 Bei allen Aufgaben ist genau eine Antwort richtig. Lösens des Tests eine Formelsammlung
MehrKomplexe Zahlen (Seite 1)
(Seite 1) (i) Motivation: + 5 = 3 hat in N keine Lösung Erweiterung zu Z = 2 3 = 2 hat in Z keine Lösung Erweiterung zu Q = 2 / 3 ² = 2 hat in Q keine Lösung Erweiterung zu R = ± 2 ² + 1 = 0 hat in R keine
MehrNumerisches Programmieren
Technische Universität München WS /3 Institut für Informatik Prof Dr Hans-Joachim Bungartz Dipl-Inf Christoph Riesinger Dipl-Inf Dipl-Math Jürgen Bräckle Numerisches Programmieren Programmieraufgabe: Polnominterpolation,
MehrComputergrafik 1. 2D Rendering
Computergrafik 2D Rendering Hearn/Baker 32., 3.4-3.6,5. 5.8, 6. 6.8, 6. Based on material b Werner Purgathofer, Gerhard Reitmar and Dieter Schmalstieg 2D Racasting Inhalt Einfaches Rendering Model 2D Transformationen
MehrÜbungen zur Ingenieur-Mathematik III WS 2009/10 Blatt
Übungen zur Ingenieur-Mathematik III WS 9/ Blatt 4..9 Aufgabe : Berechnen Sie das Volumen des Volltorus, der durch Rotation der reisscheibe { x,, z R 3, x b + z a } mit < a < b um die z-achse entsteht.
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Schleifen while do-while for Methoden Verfahren: Intervallschachtelung 2 Wo
MehrJava 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002
Java 3D Linien, Flächen und Objekte Axel Bartsch, Okt. 2002 Virtual World Koordinaten System Grundlagen zur Definition visueller Objekte Shape3D Unterklasse der Leaf-Klasse Eigenschaften des visuellen
MehrLineare Abbildungen (Teschl/Teschl 10.3, 11.2)
Lineare Abbildungen Teschl/Teschl.3,. Eine lineare Abbildung ist eine Abbildung zwischen zwei Vektorräumen, die mit den Vektoroperationen Addition und Multiplikation mit Skalaren verträglich ist. Formal:
Mehr2. Aufgabe Vereinfachen Sie die folgenden Ausdrücke so, dass möglichst wenige Multiplikationen ausgeführt werden müssen!
Studiengang: PT/LOT/PVHT Semester: WS 9/ lgebra Serie: 2 Thema: Matrizen, Determinanten. ufgabe Gegeben sind die Matrizen = µ 2 3 2 µ 3 2 4, B = 2 Berechnen Sie: a) 2 + 3B b) B 2 c) B T d) B T e) T B f)
Mehr"rendern" = ein abstraktes geometrisches Modell sichtbar machen
3. Grundlagen des Rendering "rendern" = ein abstraktes geometrisches Modell sichtbar machen Mehrere Schritte: Sichtbarkeitsberechnung Beleuchtungsrechnung Projektion Clipping (Abschneiden am Bildrand)
MehrInstitut für Informatik und Angewandte Kognitionswissenschaften
Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");
MehrPraktikum 3: Klassen im Zusammenspiel
: Klassen im Zusammenspiel 1. Lernziele Die folgenden, in der Vorlesung behandelten Themen sollen vertieft und angewendet werden: Programmierung Klassen- und Objektmodell Einbinden von externen Bibliotheken
MehrUnterprogramme, Pointer und die Übergabe von Arrays
Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte
Mehr1. Definition der komplexen Zahlen Ziel: neuerliche Zahlbereichserweiterung, so dass auch Quadratwurzeln aus negativen Zahlen
Komplexe Zahlen Mathe I / 12.11.08 1. Definition der komplexen Zahlen Ziel: neuerliche Zahlbereichserweiterung, so dass auch Quadratwurzeln aus negativen Zahlen gezogen werden können (in nicht möglich!).
Mehr44 Orthogonale Matrizen
44 Orthogonale Matrizen 44.1 Motivation Im euklidischen Raum IR n haben wir gesehen, dass Orthonormalbasen zu besonders einfachen und schönen Beschreibungen führen. Wir wollen das Konzept der Orthonormalität
MehrMathematik II Frühlingsemester 2015 Kapitel 8: Lineare Algebra 8.5 Eigenwerte und Eigenvektoren
Mathematik II Frühlingsemester 215 Kapitel 8: Lineare Algebra 8.5 Eigenwerte und Eigenvektoren www.math.ethz.ch/education/bachelor/lectures/fs215/other/mathematik2 biol Prof. Dr. Erich Walter Farkas http://www.math.ethz.ch/
MehrJAVA für Nichtinformatiker - Probeklausur -
JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils
Mehr