Erinnerung Arbeitsschritte der Computergraphik Modellierung Animation Generierung Ausgabemedium
Graphik/-Pipeline Wandelt die Beschreibung einer Szene im dreidimensionalen Raum in eine zweidimensionale Darstellung auf der Betrachtungsfläche dem Monitor um.
Graphik/-Pipeline local world view 3d screen display coordinates coordinates coordinates space space Lokale/ Modell/ Objekt- Kamera/ Betrachtungs- Projektion Rasterisierung transformation transformation
Lokale oder Modellkoordinaten system, in dem die einzelnen Teile einer Szene modelliert worden sind. Oft ist der Ursprung eines lokalen systems das Zentrum des jeweiligen Objektes oder ein Eckpunkt.
Lokale oder Modellkoordinaten Xiaoyuan Tu, Univ. Toronto
Gemeinsames, globales system, in das alle Objekte platziert werden Alle Objekte zusammen bestimmen die -Szene. Bestimmt die relative Lage der Objekte zueinander Beleuchtung wird in angegeben
y w z w x w
Transformation von lokalen nach : P W =M W *P L P W : M W : Punkt in Transformationsmatrix von lokalen nach für Punkt P L P L : Punkt in lokalen
Betrachter/Kamera/Augenkoordinaten Bestimmt die Betrachtungsparameter (Betrachterstandort, -richtung, -volumen) Augenpunkt C, ebene Betrachterk.system View-Pyramide Blickrichtung N im Abstand d von C mit Achsen U,V,N bei C
Transformation von Welt- nach : P B =M B *P W P W : Punkt in M B : Transformationsmatrix von nach P B :Punkt in
M B = R*T T: Translationsmatrix (Abbildung des systems auf das verschobene Kamerakoordinatensystem. Inverse Translation vom Weltursprung nach C.) R: Rotationsmatrix (Abbildung des versch. WK auf das rotierte KK. Inverse Rotation der WK-Achsen auf KK-Achsen.) 0 0 C x 0 1 0 C T=[1 y ] 0 0 1 C z 0 0 0 1 x U y U z 0 V R=[U x V y V z 0 N x N y N z 0 0 0 0 1 ]
back-face culling C N θ V N V>0: Polygon ist sichtbar N V= N V cos( θ )
Erweiterte View-Pyramide h Vordere Clip- Ebene hat Höhe 2h Vordere und hintere Clip-Ebene bei z B =d und z B =f (für far)
Clipping (Abschneiden) Zu clippendes Polygon Akzeptiertes Polygon Ausgeschlossene Polygone
Clipping Wird üblicherweise nicht in sondern in vorgenommen, da es dort effizienter realisiert werden kann.
Clipping gegen Sichtvolumen geschieht hier. Verdeckungsberechnung (hidden surface removal) via z-buffer. Transformation in 2D- ebenenkoordinaten über Projektion.
Albrecht Dürer, Der Zeichner der Laute 1525 Lokale/ Projektion
Jan Vrederman De Vries, Perspective, 1604-5 Lokale/ Projektion
Perspektivprojektion Ähnliche Dreiecke: x s d = x B z B, y s d = y B z B Mit X=x B,Y=y B,Z=z B,w= z B d gilt: [ X Y Z w xb pers[ y ]=T B ] z B 1 T wobei pers =[1 0 0 0 0 1 0 0 0 0 1 0 0 0 1d 0 ]
Parallelprojektion [ X Y Z w xb pers[ y ]=T B ] z B 1 wobei Projektion parallel zur ZB- Achse: x S =x B, y S =y B, z S =0 T pers =[1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 ]
Perspektivprojektion z B -Werte sollen für z-buffer Algorithmus erhalten bleiben, aber Abbildung [d,f] auf [0,1] z S = f 1 dz B f d
Perspektivprojektion Verformung der View-Pyramide in Quader (- 1,-1,0) bis (1,1,1) (Diagonale)
Perspektivprojektion Verformung der View-Pyramide in Quader (- 1,-1,0) bis (1,1,1) (Diagonale) x S =d x B hz B, y S =d y B hz B
Perspektivprojektion Putting it all together: Mit X= d h x B,Y= d h y B,Z= fz B f d df f d,w=z B [ X Y Z w xb pers[ y ]=T B ] z B 1 T pers =[ dh gilt: wobei 0 0 0 0 dh 0 0 0 0 f f d df f d 0 0 1 0 ]
Transformation von Betrachter- nach : P S =M S *P B P B : M S : Punkt in Transformationsmatrix von nach = T pers P S : Punkt in homogenen
Clipping geschieht mit Punkten P S in homogenen durch -w <= X <= w -w <= Y <= w 0 <= Z <= w vor Division durch w
[ Lokale/ Gesamttransformation von lokalen nach : [ X Y Z w ]=M S M B M W x L y L z L 1 ] [ ]=[ xs y S z S 1 Xw Yw Zw 1 ] perspective divide
Übung (Vorbereitung) 1. Schreiben Sie einen reader für Volumendaten, der die Daten in eine für den MC-Algorithmus brauchbare Datenstruktur ablegt. 2. Testdateien (64x64x64) von www.volvis.org einlesen 3. Beginn der MC-Alg. Implementierung 4. Sehen Sie bei http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/index.html nach, wie die Ecken-, Kanten- und Dreieckstabellen benutzt werden. Die Seite gibt auch noch einmal einen Überblick über den Marching Cubes Algorithmus. In der nächsten Übung werden die Tabellen benutzt!