156 KAPITEL 13. 3D-TRANSFORMATIONEN 1. Translation um (,Z ;,Z ;,Z ), 2. Skalierung um (s ;s ;s ), 3. Translation um (Z ;Z ;Z ). Die Transformationsmat

Ähnliche Dokumente
Computergrafik 1 3D Rendering

Computergrafik 1. 2D Rendering

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung

Planare Projektionen und Betrachtungstransformation. Quelle: Angel (2000)

Bildtransformationen. Geometrische Transformationen Grauwert-Interpolation

Computergraphik Grundlagen

Vorgehen zur Kalibrierung von Kamerabildern

4. Kapitel 3D Engine Geometry

Grundregeln der Perspektive und ihre elementargeometrische Herleitung

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese

Mechanische Struktur. Digitalrechner (Steuerung, Regelung und Datenverarbeitung) Leistungsteil. Stellgrößen. Rückmeldungen (Lage, Bewegungszustand)

Computer Graphik. Mitschrift von

Anwengungen geometrischer Abbildungen Kongruenz- und Ähnlichkeitsabbildung

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg


Computergraphik Grundlagen

Grundlagen der 3D-Grafik

Die Übereckperspektive mit zwei Fluchtpunkten

Gegeben ist die Funktion f durch. Ihr Schaubild sei K.

Technische Universität München. Fakultät für Informatik

Nachklausur zur Einführung in die Geometrie im SS 2002 Lösung Aufgabe 1 1.Weg (kurz und einfach):

Weitere Aufgaben Mathematik (BLF, Abitur) Hinweise und Beispiele zu hilfsmittelfreien Aufgaben

Darstellende Geometrie Übungen. Tutorial. Übungsblatt: Perspektive - Rekonstruktion

u + v = v + u. u + (v + w) = (u + v) + w. 0 V + v = v + 0 V = v v + u = u + v = 0 V. t (u + v) = t u + t v, (t + s) u = t u + s u.

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Übungsbuch für die optimale Vorbereitung in Analysis, Geometrie und Stochastik mit verständlichen Lösungen

Die Polygone im Vordergrund werden zuletzt wiedergegeben und überdecken möglicherweise weiter hinten liegende Polygone ganz oder teilweise.

Eignungstest Mathematik

Nachhilfe-Kurs Mathematik Klasse 13 Freie Waldorfschule Mitte

Computer-Graphik I Transformationen & Viewing

Abitur - Grundkurs Mathematik. Sachsen-Anhalt Gebiet G1 - Analysis

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

6 Symmetrische Matrizen und quadratische Formen

Geometrische Maße oder,... wie kann man quantitative Aussagen über geometrische Objekte erhalten?

"rendern" = ein abstraktes geometrisches Modell sichtbar machen

DAS ABI-PFLICHTTEIL Büchlein

Computer Vision: 3D-Geometrie. D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17

Geometric Algebra Computing

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Grundkurs Mathematik

Vektorgeometrie. mathenachhilfe.ch. Version: 28. Dezember 2007 (Bitte nur für den Eigengebrauch verwenden) 1. Mathematische Operationen für Vektoren

Graphische Datenverarbeitung und Bildverarbeitung

3D-Model Reconstruction using Vanishing Points

Bulletin. Gebrochener Stab. Martin Lieberherr Mathematisch Naturwissenschaftliches Gymnasium Rämibühl, 8001 Zürich

Kapitel 0. Einführung. 0.1 Was ist Computergrafik? 0.2 Anwendungsgebiete

K2 MATHEMATIK KLAUSUR. Aufgabe PT WTA WTGS Darst. Gesamtpunktzahl Punkte (max) Punkte Notenpunkte

Bestimmung einer ersten

Das Mathematikabitur. Abiturvorbereitung Geometrie. Autor: Claus Deser Abiturvorbereitung Mathematik 1

Abituraufgabe zur analytischen Geometrie, Hessen 2013, B2, Grundkurs (TR)

Zwei Aufgaben, die auf windschiefe Regelflächen führen,

Technische Universität

Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008

3.2 Spiegelungen an zwei Spiegeln

Grundlagen der Computer-Tomographie

Billboard Clouds for Extreme Model Simplification

Lineare Algebra und Computer Grafik

Hauptprüfung Abiturprüfung 2014 (ohne CAS) Baden-Württemberg

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

CAD mit AutoCAD Lupe als 3D-Modell

Mathematik 1: (ohne Taschenrechner) Korrekturanleitung

Vorlesung INFORMATIK 2

Logo-Aufgaben mit Verbindung zur Mathematik

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

Universität Augsburg. 20. April B. Möller (U. Augsburg) Computergraphik SS April / 6

Wie erstellt man dynamische Elemente mit JSXGraph?

Eine solche Anordnung wird auch Fabry-Pérot Interferometer genannt

Registrierung digitaler Bilddaten der Radiographie und Computer-Tomographie

Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler

1 Ableiten der Sinus- und Kosinusfunktion

4.4 Zu ausgewählten Inhalten des Geometrieunterrichts in der Grundschule

Mathematik für das Ingenieurstudium Lösungen der Aufgaben. 4. Dezember 2014

Extremwertaufgaben. 3. Beziehung zwischen den Variablen in Form einer Gleichung aufstellen (Nebenbedingung),

Einordnung. ! Raytracing als Darstellungsmethode für 3D-Echtzeit unrealistisch! Enorm hoher Aufwand. ! Ausgangspunkt 3D-Szene

Bildkorrekturen mit JPGIlluminator:

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

WS 2015/2016 CAD. der Version. Kreis. Linie. Rechteck. Polylinie. Hilfen: Seite 1 von 14

Inhaltsverzeichnis - Themen

Geometrie-Dossier Würfel und Quader

Computergraphik I. Scan Conversion: Lines & Co. Einordnung in die Pipeline. G. Zachmann Clausthal University, Germany zach@tu-clausthal.

Head Tracking durch Bildanalyse auf einem Smartphone

Arbeitsblätter zum Thema Papierfalten und Algebra für den Unterricht Hochbegabter in der Sekundarstufe II

( -1 2 ) -2. Gesamtschule Duisburg-Mitte. Abbildungen. Affine Abbildungen. 1. Spiegelung an den Koordinatenachsen A( 1 / 4 ) -> A'( -1 / 5 )

Leitprogramm Vektorgeometrie

Dokumentation zum Projekt Multimediale Lehre Fluidmechanik an der Technischen Universität Graz

Bei Konstruktionen dürfen nur die folgenden Schritte durchgeführt werden : Beliebigen Punkt auf einer Geraden, Strecke oder Kreislinie zeichnen.

GeoGebra Quickstart Eine Kurzanleitung für GeoGebra

Überblick Echtzeit-Rendering. Uwe Domaratius

Wirtschaftsrechnen. Leseprobe

Das Werkzeug Verschieben/Kopieren wird über die Symbolleiste oder im Pull-Down-Menü Tools > Verschieben aktiviert.

14 Teiler verschieben

Lineare Gleichungssysteme

Das Magnetfeld der Erde. Stephen Kimbrough Damjan Štrus Corina Toma

Dynamisch unterrichten mit Excel

4.12 Elektromotor und Generator

Prof. J. Zhang Universität Hamburg. AB Technische Aspekte Multimodaler Systeme. 6. Januar 2004

Arbeiten mit dem Geometrieprogramm GeoGebra

Basteln und Zeichnen

Grundlagen der digitalen Bildverarbeitung / Fortsetzung

Integration von Schülerinnen und Schülern mit einer Sehschädigung an Regelschulen

Funktionen (linear, quadratisch)

Transkript:

Kapitel 13 3D-Transformationen 13.1 Translation Mit homogenen Koordinaten lat sich der um den Translationsvektor t =(t ;t ;t )verschobene Punkt P =(; ; ) in der folgenden Form darstellen: ( 0 ; 0 ; 0 ):=( + t ;+ t ;+ t ) [ 0 ; 0 ; 0 ; 1] = [; ; ; 1] T (t ;t ;t ) mit T (t ;t ;t )= 2 6 4 1 0 0 0 0 1 0 0 0 0 1 0 t t t 1 3 7 5 13.2 Skalierung Es liege der Fipunkt im Ursprung: ( 0 ; 0 ; 0 ):=( s ; s ; s ) Die daraus resultierende Transformationsmatri lautet: S(s ;s ;s )= Es liege der Fipunkt bei (Z ;Z ;Z ): 2 6 4 155 s 0 0 0 0 s 0 0 0 0 s 0 0 0 0 1 3 7 5

156 KAPITEL 13. 3D-TRANSFORMATIONEN 1. Translation um (,Z ;,Z ;,Z ), 2. Skalierung um (s ;s ;s ), 3. Translation um (Z ;Z ;Z ). Die Transformationsmatri lautet: T (,Z ;,Z ;,Z ) S(s ;s ;s ) T (Z ;Z ;Z ) 13.3 Rotation Rotation um die -Achse 0 := cos(), sin() 0 := sin()+ cos() 0 := Die daraus resultierende Transformationsmatri lautet: 2 Rotation um die -Achse R () = 6 4 cos() sin() 0 0, sin() cos() 0 0 0 0 1 0 0 0 0 1 3 7 5 0 := 0 := cos(), sin() 0 := sin()+ cos() Die daraus resultierende Transformationsmatri lautet: 2 Rotation um die -Achse R () = 6 4 1 0 0 0 0 cos() sin() 0 0, sin() cos() 0 0 0 0 1 3 7 5 0 := sin()+ cos() 0 := 0 := cos(), sin()

13.3. ROTATION 157 Die daraus resultierende Transformationsmatri lautet: 2 R () = 6 4 Rotation um eine beliebige Achse cos() 0, sin() 0 0 1 0 0 sin() 0 cos() 0 0 0 0 1 Voraussetung: Die Rotationsachse stimme nicht mit einer der Koordinatenachsen uberein. Idee: Transformiere Rotationsachse und Objekt so, da die Rotationsachse mit der -Achse ubereinstimmt, rotiere um vorgegebenen Winkel, transformiere uruck. 1. Translation von Rotationsachse (und Objekt), so da die Rotationsachse durch den Ursprung lauft. 2. Rotation der Rotationsachse um die -Achse in die -Ebene. 3. Rotation der Rotationsachse um die -Achse in die -Achse. 4. Rotation des Objekts um die -Achse mit Winkel. 5. Rucktransformation des gedrehten Objekts durch Anwendung der inversen Transformationen der Schritte (3), (2) und (1). Ist die Rotationsachse durch die Punkte P 1 ;P 2 gegeben, so gilt 0 2, 1 1 v = P 2, P 1 = @ 2, 1 2, 1 A : Die Lange dieses Vektors lautet q jvj = ( 2, 1 ) 2 +( 2, 1 ) 2 +( 2, 1 ) 2 : Die Komponenten des ugehorigen Einheitsvektors 0 1 u = v a jvj = @ b A ; juj =1 c lauten daher a = 2, 1 jvj ; b = 2, 1 jvj 3 7 5 ; c = 2, 1 : jvj Schritt 1 lat sich durch die Translation T (, 1 ;, 1 ;, 1 ) durchfuhren. Dadurch wird P 1, Ausgangspunkt des Einheitsvektors u, in den Ursprung verschoben. Fur Schritt 2 sind Sinus und Cosinus des Rotationswinkels erforderlich, der wischen der Projektion u 0 von u auf die -Flache und der -Achse, reprasentiert durch den Vektor u = (0; 0; 1), liegt.

158 KAPITEL 13. 3D-TRANSFORMATIONEN u 0 =(0;b;c) u =(a; b; c) b d = p b 2 + c 2 c ) cos() = c d ) sin() = b d Nach Schritt 2 bendet sich der ursprungliche Vektor u als u 00 in der -Ebene: u 00 =(a; 0;d) Fur Schritt 3 (Rotation um -Achse) benotigt man Sinus und Cosinus des Rotationswinkels. a ju 00 j =1 360, d ) cos() = cos(360, ) =d ) sin() =, sin(360, ) =,a Nach den ersten drei Schritten ist die Drehachse mit der -Achse identisch, so da Schritt (4) mit der Rotationsmatri R () durchgefuhrt werden kann. Schritt (5) beinhaltet die Anwendung der inversen Transformationen. Die Rotation um die Achse v = P 1 P 2 um den Winkel lat sich daher wie folgt darstellen: R(v; ) =T (,P 1 ) R () R () R () R,1 () R,1 () T (P 1 )

13.4. TRANSFORMATION VON KOORDINATENSYSTEMEN 159 13.4 Transformation von Koordinatensstemen Die Transformation von einem Koordinatensstem in ein anderes bedeutet einen Basiswechsel und lat sich folgendermaen formalisieren: Gegeben sei ein Koordinatensstem A, in dem ein anderes Koordinatensstem B durch die homogenen Koordinaten des Ursprungs (Bw) und die drei normierten Richtungsvektoren der Achsen (B, B, B) deniert ist. Zeilenweise angeordnet ergeben diese Vektoren die Matri B A, die den Ubergang vom Koordinatensstem B um Koordinatensstem A beschreibt: B A = 2 6 4 B B B Bw 3 7 5 A p 01 B B Bw B B Beispiel (fur den 2-dimensionalen Fall): B A p B Bw A q q 1 -Achse: B lautet [ ; 1 ; 0] 2 2 q q 1 -Achse: B lautet [, ; 1 ; 0] 2 2 Ursprung: Bw lautet [4; 1; 1] Punkt: p B lautet [2 p 2; 4 p 2; 1] Der Aufbau der Matri B A reprasentiert die erforderliche Drehung und Verschiebung, um einen aus der Sicht von Koordinatensstem B beschriebenen Punkt p aus der Sicht von Koordinatensstem A u beschreiben. Im wei-dimensionalen Fall wird unachst der Punkt

160 KAPITEL 13. 3D-TRANSFORMATIONEN p um den Winkel gedreht, der sich wischen den Achsen der Koordinatenssteme A und B bendet. Dann wird eine Translation durchgefuhrt mit dem Wert der Ursprungsposition von B. Cosinus und Sinus des Drehwinkels ergeben sich gerade aus den Werten a bw. b, wobei die Einheitsvektoren (a; b) und (,b; a) die Basis fur Koordinatensstem B darstellen. Also lat sich in obigem Beispiel der Punkt p wie folgt transformieren: 2 3 [2 p 2; 4 p 2; 1] 6 4 q 1 2 q 1 q q 1 1, 0 2 2 4 1 1 2 0 7 5 =[2; 7; 1] Um einen Punkt p A des Koordinatensstems A im Koordinatensstem B u speiieren, verwendet man die inverse Matri u B A: p B (B A) =p A ) p B = p A (B A),1 : 13.5 Transformation der Normalenvektoren Die Normalenvektoren mussen bei der Transformation von Objektpunkten ebenfalls abgebildet werden. Allgemein gilt, da bei der Transformation eines Objekts mit der Matri M ein Normalenvektor n dieses Objekts mit der transponierten Inversen von M abgebildet werden mu: n 0 = n (M,1 ) T : Beweis: Sei n der Normalenvektor einer Ebene, seien r 1 und r 2 beliebige Punkte in der Ebene. Betrachte n; r 1 und r 2 als Zeilenvektoren und arbeite mit dem Matriprodukt (Zeile mal Spalte). Dann gilt: (r 1, r 2 ) n T =0 Bei einem Wechsel des Koordinatensstems werden die Ortsvektoren r 1 und r 2 mit der Matri M transformiert: r 0 1 = r 1 M Es gilt: r 0 2 = r 2 M (r 1, r 2 ) n T =0, (r 1, r 2 ) (M M,1 ) n T =0, ((r 1, r 2 ) M) (M,1 n T ) =0, (r 0 1, r0 2 ) (n (M,1 ) T ) T =0, (r 0 1, r0 2 ) (n0 ) T =0 ) n 0 = n (M,1 ) T

Kapitel 14 Projektion 14.1 Bildebene Fur die Aneige am weidimensionalen Ausgabegerat mu eine Abbildung (Projektion) der raumlichen, dreidimensionalen Sene auf eine Projektionsebene erfolgen. Gegeben sind das u projiierende Objekt, die Bildebene, das Projektionsentrum. P 2 P 1 P 0 1 P 0 2 Sehstrahlen Projektionsentrum (Augenpunkt) Objekt Bildebene Abbildung 14.1: Zentralprojektion Ist der Abstand des Projektionsentrums von der Bildebene endlich, so handelt es sich um eine Zentralprojektion (perspektivische Projektion), andernfalls handelt es sich um eine Parallelprojektion (die Projektionsstrahlen sind ueinander parallel). 161

162 KAPITEL 14. PROJEKTION 14.2 Perspektivische Projektion Die abgebildeten Objekte werden proportional u ihrem Abstand ur Bildebene verkleinert. Je nachdem, ob die Bildebene eine, wei oder drei der Koordinatenachsen schneidet, entstehen ein, wei oder drei Fluchtpunkte. F F1 F2 1 Fluchtpunkt F 2 Fluchtpunkte F1; F2 F1 F2 F3 3 Fluchtpunkte F1, F2, F3 Abbildung 14.2: Zentralprojektionen mit unterschiedlich vielen Fluchtpunkten

14.2. PERSPEKTIVISCHE PROJEKTION 163 OBdA sei die Bildebene gleich der -Ebene, und das Projektionsentrum liege auf der negativen -Achse im Punkt Z =(0; 0;,a). Gegeben Punkt P =(; ; ). Gesucht sind auf der Bildebene die Koordinaten des projiierten Bildpunktes P 0 =( 0 ; 0 ; 0)., P a Z 0 P 0, 0 P 0 a, P Sene in Blickrichtung negativer -Achse Es gilt: 0 : a = :(a + ), Sene in Blickrichtung negativer -Achse Es gilt: 0 : a = :( + a) Abbildung 14.3: Anwendung der Strahlensate Betrachtet man die Sene \von oben" und \von der Seite", so erhalt man aufgrund der Strahlensate die Beiehung 0 = 1+=a ; 0 = 1+=a ; 0 =0: Die homogenen Koordinaten des projiierten Punktes lauten P 0 =[=w; =w; 0; 1] = [; ; 0;w] mit w =1+=a: Fur die Transformationsmatri der perspektivischen Projektion ergibt sich also: P persp (,a) = 2 6 4 1 0 0 0 0 1 0 0 0 0 0 1=a 0 0 0 1 3 7 5 :

164 KAPITEL 14. PROJEKTION 14.3 Parallelprojektion 14.3.1 Normalprojektionen Stehen die Sehstrahlen normal ur Bildebene, liegt eine orthogonale Projektion vor. a) b) Abbildung 14.4: Grund-, Seiten-, Aufriss (a) bw. aononometrische Projektion (b) Die haugste Anwendung orthogonaler Projektionen liegt in der Darstellung eines Objekts durch Grund-, Auf- und Seitenri (Abbildung 14.4 a). Eine weitere Form der Normalprojektionen sind die aonometrischen Projektionen, bei denen die Bildebene auf keiner der Korper-Hauptachsen senkrecht steht. Dadurch sind in der Abbildung mehrere ueinander normal stehende Flachen gleicheitig sichtbar. Die resultierenden Darstellungen sind der perspektivischen Projektion ahnlich. Anstelle der ur Entfernung vom Auge proportionalen Verkurung erfolgt aber eine gleichmaige Verkurung aller Kanten (Abbildung 14.4 b). Die Transformationsmatri fur die orthogonale Parallelprojektion auf die -Ebene lautet 2 3 1 0 0 0 P ortho = 6 0 1 0 0 7 4 0 0 0 0 5 ; 0 0 0 1 da fur jeden Punkt P =[; ; ; 1] die Koordinaten des projiierten Punktes gleich [; ; 0; 1] sind. 14.3.2 Schiefe Projektionen Bei den schiefen Parallelprojektionen stehen die Sehstrahlen nicht normal auf der Bildebene, sondern schneiden sie unter dem Winkel (Abbildung 14.5 ). Die schiefe Projektion auf die -Ebene entspricht einer Scherung der - und -Koordinaten proportional u. Seien P 0 = (; ; 0) die orthogonale und P 0 = ( 0 ; 0 ; 0) die schiefe Projektion von Punkt P =(; ; ). Sei L die Entfernung von P 0 nach P 0. Dann gilt 0 =, L cos() 0 = + L sin() 0 =0 Wegen tan() = L folgt

14.3. PARALLELPROJEKTION 165 P 0 L, P P 0 Abbildung 14.5: Bildebene bei der schiefen Projektion 0 =, cos() tan() 0 = + sin() tan() Der Winkel regelt im projiierten Bild das Verhaltnis von -Ausdehnung u -Ausdehnung. Die Koordinaten weier projiierter Punkte P 0 1, P 0 2 lauten: 0 1 = 1, 1 cos()= tan() 0 1 = 1 + 1 sin()= tan() 0 2 = 2, 2 cos()= tan() 0 2 = 2 + 2 sin()= tan() Fur wei Punkte, die sich nur bgl. ihrer -Koordinaten unterscheiden, betragen die Abstande ihrer Bilder in - bw. -Richtung j 0 1, 0 2 j = j( 1, 2 ) cos()= tan()j j 0 1, 0 2 j = j( 1, 2 ) sin()= tan()j fur den Abstand jp 0 1, P 0 2 j = p j 0 1, 0 2 j2 + j 0 1, 0 2 j2 ergibt sich jp 0 1, P 0 2j = wegen cos 2 () + sin 2 () =1. s ( 1, 2 ) 2 tan 2 () (cos 2 () + sin 2 ()) = 1, 2 tan() Fur die Berechnung der Transformationsmatri benotigt der Algorithmus den Verkurungsfaktor d und den Scherwinkel. d gibt an, um welchen Faktor ur Bildebene normal stehende

166 KAPITEL 14. PROJEKTION Strecken verkurt werden. Es gilt d = 1 tan() : deniert den Winkel ur Horiontalen, unter dem diese Kanten aufgetragen werden. Fur die Koordinaten des so projiierten Punktes P =(; ; ; 1) gilt 0 =, (d cos()); 0 = + (d sin()); 0 = 0; w 0 = 1 Die entsprechende Transformationsmatri lautet 2 P schief (; d) = 6 4 1 0 0 0 0 1 0 0,d cos() d sin() 0 0 0 0 0 1 Fur d =0( =90 ) ergibt sich daraus die orthogonale Projektion. Bei schiefen Projektionen ist der Wert fur d immer ungleich Null. Zwei haug als Ersat fur Perspektive verwendete Projektionen haben die Werte d = 1 ( =45 ), =35 (Kavalierprojektion) und d =0:5 ( =63:43 ), =50 (Kabinettprojektion). Bei der Kavalierprojektion werden alle auf der Bildebene normal stehenden Strecken unverkurt abgebildet. Bei der Kabinettprojektion ergibt sich eine Verkurung auf die Halfte ihrer ursprunglichen Lange. 3 7 5 : l l l l=2 l l Kavalierprojektion: =45 kombiniert mit =35 Kabinettprojektion: =63:43 kombiniert mit =50 Abbildung 14.6: Zwei schiefe Projektionen

Kapitel 15 Betrachtungstransformationen Die Abbildung dreidimensionaler Objekte auf den Bildschirm wird in eine Reihe von Elementartransformationen erlegt: Konstruktion von kompleen Senen aus elementaren Objekten (Modeling), Festlegen der Bildebene (View Orientation), Projektion auf ein normiertes Gerat (View Mapping), Abbildung auf ein Ausgabegerat (Device Mapping). 15.1 Die snthetische Kamera V N ( ma ; ma ) Auge = PRP = NRP U VPD VRC VRP,N ( min ; min ) Abbildung 15.1: Parameter ur Beschreibung der sntetischen Kamera 167

168 KAPITEL 15. BETRACHTUNGSTRANSFORMATIONEN Die Parameter ur Durchfuhrung der 3D-auf-2D-Abbildung (viewing transformation) sind im wesentlichen die Position und Orientierung einer snthetischen Kamera und ein Punkt in der Sene, auf den die Kamera fokussiert ist: Der View Reference Point (VRP). Die View Plane ist die Bildebene, auf die die Sene projiiert wird. Diese ist deniert durch die View Plane Normal N, die Richtung, aus der die Kamera die Sene aufnimmt, und den VRP. Die Kamera bendet sich im NRP (Projection oder Normal Reference Point), der dem Augenpunkt eines naturlichen Betrachters entspricht. Die Orientierung der Kamera wird durch den View Up Vector (VUV) festgelegt. Durch Projektion des VUV in die View Plane erhalt man den Vektor V. Der Vektor U in der View Plane wird so gewahlt, da U, V, N ein rechtshandiges kartesisches Koordinatensstem bilden, das sogenannte View Reference Coordinate Sstem VRC mit dem VRP als Ursprung und dem Augenpunkt N RP auf der positiven N-Achse bei N = V P D (View Plane Distance). Die beiden Punkte in den UV-Koordinaten der Viewplane ( min ; min ), ( ma ; ma ) legen das sogenannte View Window fest, d.h., was von der Sene u sehen ist (entspricht der Brennweite eines Kameraobjektivs). Der sichtbare Teil kann noch weiter eingeschrankt werden durch Angabe einer front plane und einer back plane. Sene,N Auge back plane window front plane Abbildung 15.2: Einschrankung des sichtbaren Teils Bemerkung: Zur Berechnung der Projektion auf die Bildebene ist es unerheblich, wo die Bildebene in der Sene arrangiert ist. 15.2 Viewing Pipeline Folgende Informationen sind erforderlich: Jedes Objekt wird beschrieben durch Modellkoordinaten (.B. Wurfel ist beschrieben durch Mittelpunkt (0; 0; 0) und Kantenlange 1). Die Sene wird beschrieben durch eine Menge von Objekten, deren Lage und Groe in Weltkoordinaten beschrieben sind. Die snthetische Kamera wird beschrieben durch U;V;N;V PD;( ma ; ma ); ( min ; min ).

15.2. VIEWING PIPELINE 169 Folgende Abkurungen werden verwendet: MC WC VRC NPC DC model coordinate sstem world coordinate sstem view reference coordinate sstem normalied projection coordinate sstem device coordinate sstem Jedes Polgon durchlauft die folgende Viewing-Pipeline: 1.) Modeling: MC! WC Beschreibe Polgonpunkte in Weltkoordinaten (dies geschieht durch Translation, Rotation und Skalierung). 2.) View Orientation: WC! VRC Beschreibe Polgonpunkte bgl. des UVN-Sstems (dies geschieht durch Wechsel des Koordinatensstems, anschlieend ist die Sene beschrieben mit -Ebene = Bildebene, das Auge liegt bei = VPD). 3.) View Mapping: VRC! NPC Transformiere die Sene derart, da der sichtbare (= im Pramidenstumpf aus view window, front plane, back plane liegende) Teil abgebildet wird auf einen Einheitswurfel, dessen Vorder- und Ruckseite der front plane bw. back plane entsprechen. Clippe jede Polgonkante am Einheitswurfel. 4.) Device Mapping: NPC! DC Bilde jeden Bildpunkt auf Geratekoordinaten ab = ubernimm ; -Koordinaten; liefert Tiefeninformation. Beim Flachenmodell werden nach dem Clipping in Schritt 3.) die Polgone in Dreiecke erlegt. Die Dreiecke sind versehen mit den Normalen bgl. des Weltkoordinatensstems. Diese werden benotigt fur das Schattieren der Dreiecke. 15.2.1 Modeling-Transformationen Punkt 1.) wird Modeling genannt: Das Anordnen von Objekten aus dem Modellkoordinatensstem (MC) u einer Sene in dem sogenannten Weltkoordinatensstem (WC). Im MC liegen die Objekte als Prototpen vor. Ihre Denitionspunkte sind unabhangig von der spateren Groe und Position im WC in Modellkoordinaten gegeben. Der Ursprung des MC bendet sich sinnvollerweise im Zentrum des Objekts. Erst durch das Modeling erhalten die Objekte im WC ihre individuelle Groe, Orientierung und Position. Dieses wird im wesentlichen durch drei Arten von Transformationen realisiert: Translation, Rotation und Skalierung. 15.2.2 View Orientation Zur Abbildung einer dreidimensionalen Sene aus den Weltkoordinaten auf den Bildschirm mu eine naturliche Betrachtersicht (View Orientation) deniert werden. Eine solche Betrachtersicht besteht aus den Viewing-Parametern

170 KAPITEL 15. BETRACHTUNGSTRANSFORMATIONEN Betrachterstandpunkt NRP (Normal Reference Point; auch Eepoint), Blickrichtung VRP (View Reference Point), vertikale Orientierung VUV (View Up Vector) oder VUP (View Up Point), Blickwinkel (Brennweite). Der ktive Betrachter blickt vom NRP in Richtung VRP und kippt dabei die Kamera so um die Blickrichtung, da VUP von ihm aus gesehen vertikal nach oben eigt. Der Blickwinkel entspricht der Brennweite und regelt den Bildausschnitt (Zooming). Durch diese Parameter wird das VRC (View Reference Coordinate Sstem) deniert mit VRP als Ursprung und NRP auf der positiven -Achse. Die -Ebene wird als View Plane beeichnet und steht senkrecht auf der Blickrichtung. Die -Achse ist gegeben durch die Projektion von VUP in die View Plane. Deshalb darf VUP nicht parallel ur Blickrichtung sein. Das VRC hat die gleiche Metrik wie das WC. Es handelt sich also um einen Wechsel des Koordinatensstems. Der Abstand wischen VRP und NRP wird als VPD (View Plane Distance) beeichnet. WC VUP View Plane NRP VRP VRC Abbildung 15.3: Denition des VRC Fur die Anwendung des Viewings ergeben sich im Programm verschiedene Moglichkeiten: Soll ein Objekt von verschiedenen Seiten betrachtet werden, so wird VRP in das Objekt gelegt. Durch NRP lat sich nun die Blickrichtung frei wahlen. Der Vektor VUP kann dabei konstant bleiben, sofern nicht senkrecht von oben oder unten geschaut wird. Soll sich die Sene bei konstantem Standpunkt um den Betrachter drehen, wird NRP festgesett. Durch Veranderung des VRP bewegt sich dann die Sene vor dem Auge des Betrachters. Der VUP kann dabei konstant bleiben, solange er nicht kollinear um Vektor durch VRP und NRP wird. Eine weitere Moglichkeit sind Animationen, bei denen sich.b. der Beobachter vorwarts in die Sene hineinbewegt. Dieser Eekt lat sich durch Verschieben von VRP und NRP um denselben Vektor erielen.

15.2. VIEWING PIPELINE 171 15.2.3 View Volume Bei einer Kamera ist der maimal abbildbare Ausschnitt einer Sene durch das Objektiv festgelegt. Im Programm wird ur Erielung desselben Eekts ein rechteckiger Ausschnitt aus der Bildebene das Window gewahlt. Das Seitenverhaltnis entspricht dem des Ausgabegerats. Durch das View Window und die gewahlte Projektion wird ein Bildraum deniert, der View Volume genannt wird. Nur jene Objekte und Objektteile, die sich innerhalb dieses Bildraumes benden, werden auf die Bildebene (und dadurch in das View Window) abgebildet. View Plane View Window NRP VRC VRP VPD Abbildung 15.4: Denition des View Windows Die Form des Bildraumes ist bei der perspektivischen Projektion eine unendliche Pramide, deren Spite im Projektionsentrum PRP (Projection Reference Point) liegt und deren Kanten durch die Eckpunkte des View Windows verlaufen. Hierbei wird im Programm der Betrachterstandpunkt NRP als Projektionsentrum gewahlt. Back Plane Front Plane View Window VRP VRC PRP(= NRP) FPD 0 BPD Abbildung 15.5: Bildraum bei perspektivischer Projektion Die Begrenung des Bildraumes in Richtung der -Achse des VRC erfolgt durch wei ur View Plane parallele Ebenen, die Front und Back Plane genannt werden. Die Front Plane liegt vom Projektionsentrum PRP aus gesehen vor der Back Plane. Ihre -Komponenten werden als Front Plane Distance (FPD) und Back Plane Distance (BPD) beeichnet. Es gilt BPD < FPD. Mit diesen Ebenen konnen Teile der Sene von der Projektion auf die Bildebene ausgeschlossen werden. Speiell bei der perspektivischen Projektion erweist sich diese Moglichkeit als notwendig, da sonst sehr nahe Objekte alle anderen verdecken bw. sehr

172 KAPITEL 15. BETRACHTUNGSTRANSFORMATIONEN weit entfernte als nicht mehr erkennbare (d.h. u kleine) Figuren abgebildet wurden. Mit Front und Back Plane ergibt sich als View Volume ein Pramidenstumpf. 15.2.4 View Mapping Statt nun das View Volume aus dem VRC direkt auf den Bildschirm u projiieren, wird im Programm eine weitere Transformation durchgefuhrt, die nicht nur ur Eiensteigerung des Algorithmus fuhrt, sondern auch die Projektion der Sene auf die Bildebene erleichert: Der Bildraum wird in einen ur Bildebene normal ausgerichteten Einheitswurfel (0 1; 0 1; 0 1) umgewandelt. Anstelle mehrerer unterschiedlicher Projektionen mu so anschlieend nur noch die orthogonale Parallelprojektion auf die Ebene = 0 durchgefuhrt werden. Das sogenannte View Mapping wird deshalb auch als Ausgabe auf einen normierten Bildschirm beeichnet. Das Koordinatensstem, in dem sich der Einheitswurfel bendet, heit Normalied Projection Coordinate Sstem (NPC). Der Betrachterstandpunkt bendet sich im Unendlichen auf der positiven -Achse und hat die homogenen Koordinaten (0; 0; 1; 0). Vom Betrachter aus gesehen liegt im NPC der Punkt (0; 0; 0) \links unten hinten" und (1; 1; 1) \rechts oben vorne". (0; 1; 0) VRC frustum VRC NPC (0; 0; 1) NPC (1; 0; 0) Abbildung 15.6: View Mapping Bei der perspektivischen Projektion wird in einem ersten Schritt der Pramidenstumpf, der den Bildraum darstellt und frustum genannt wird, auf einen regelmaigen Pramidenstumpf abgebildet. Dessen Grundache ist ein Quadrat, das mit jeder Seitenache einen Winkel von 45 einschliet. Dabei werden die -Koordinaten nicht und die - und -Koordinaten proportional ur -Koordinate verandert, was einer Scherung an der -Achse entspricht. Im weiten Schritt wird der regelmaige Pramidenstumpf in den normierten Einheitswurfel transformiert. Dau mussen die - und -Koordinaten proportional u den reiproken - Werten skaliert werden. Die Front Plane entspricht im NPC der Ebene =1und die Back Plane der Ebene =0. Beide Schritte werden im Programm u einer Transformationsmatri usammengefat. Bei deren Anwendung auf die homogenen Koordinaten ist u beachten, da die resultierenden Punkte im allgemeinen w-werte ungleich 1 haben, die anen Koordinaten also erst nach der Division durch w vorliegen. Auerdem ist diese Abbildung nur beuglich der - und -

15.2. VIEWING PIPELINE 173 Koordinaten linear. In -Richtung werden die Werte durch die Scherung im weiten Schritt reiprok vererrt, d.h., aquidistante Punkte langs der -Achse im VRC haufen sich im NPC bei = 0 nahe der Back Plane. Zur Erleichterung der Herleitung wird unachst das Koordinatensstem so transformiert, da der PRP im Ursprung sitt. Danach wird das Koordinatensstem an der -Ebene gespiegelt, indem die -Koordinaten mit -1 multipliiert werden. Danach ist das Koordinatensstem linkshandig. Es seien d min ;d;d ma die Abstande der Frontplane, Bildebene, Backplane vom Augenpunkt. Zur Durchfuhrung von Punkt 3.) der Viewing Pipeline wird unachst die abgeschnittene Pramide (= frustum) transformiert in einen smmetrischen Pramidenstumpf mit quadratischer Grundache und Kanten unter 45. (d; d) ( ma ;d) 45 Auge Auge ( min ;d) Bildebene (,d; d) Abbildung 15.7: Uberfuhrung in Pramidenstumpf Es mussen also die -Koordinaten proportional ur -Koordinate verandert werden. Dies entspricht einer Scherung an der -Achse und Skalierung, d.h. 0 = k 1 + k 2 0 = Punkt ( ma ;d) soll abgebildet werden auf (d; d); Punkt ( min ;d) soll abgebildet werden auf (,d; d). Durch Losen des Gleichungssstems d = k 1 ma + k 2 d,d = k 1 min + k 2 d erhalt man k 1 = 2d ma, min ; k 2 =, ma + min ma, min

174 KAPITEL 15. BETRACHTUNGSTRANSFORMATIONEN Analoge Scherung der -Werte ergibt: k 1 = 2d ma, min ; k 2 =, ma + min ma, min Als nachstes wird die regelmaige Pramide in den Einheitswurfel (0 1; 0 1; 0 1) transformiert. Die front plane entspricht der Ebene = 0 und die back plane der Ebene =1. (d ma ;d ma ) (1; 1) 1 (d min ;d min ) Auge 0 back view plane front (,d min ;d min ) back view plane front Abbildung 15.8: Uberfuhrung in Einheitswurfel Da die -Werte proportional u den reiproken -Werten skaliert werden mussen, ergibt sich als Transformation 0 = k 1 + k 2 0 = k 3 + k 4 1 Der Kehrwert von im Term u 0 ist erforderlich wegen der Verwendung von homogenen Koordinaten mit 4 4-Transformationsmatrien. Punkt (d ma ;d ma ) soll abgebildet werden auf (1; 1), Punkt (,d min ;d min ) soll abgebildet werden auf (0; 0). Durch Losen des Gleichungssstems

15.2. VIEWING PIPELINE 175 erhalt man 1 = k 1 + k 2 d ma d ma 0 = k 1 + k 2,d min d min k 1 = 1 2 ; k 2 = 1 2 : Durch Losen des Gleichungssstems erhalt man 1 = k 3 + k 4 0 = k 3 + k 4 1 d ma 1 d min k 3 = d ma ; k d ma, d 4 =, d min d ma : min d ma, d min Die -Werte werden analog u den -Werten skaliert. Insgesamt ergibt sich somit 0 = 1 2 + 2 1 0 = 1 2 + 2 1 0 = d ma, d min d ma 1 d ma, d min d ma, d min : Zwar wird hierdurch die Sene im vorderen -Bereich nicht-linear gestaucht, ur Bestimmung der Sichtbarkeit reichen die ermittelten -Werte jedoch aus, da ihre Ordnung erhalten bleibt. Durch Verknupfen der beiden letten Transformationen erhalt man in Schritt 3.) als Transformationsmatri 2 d 3 ma, 0 0 0 min 0 d ma, 0 0 min 1 2 (1, min + ma ma, ) 1 min 2 (1, min + ma ma, ) d ma 1 min d 6 ma, d min 7 4 5 0 0,d ma d min 0 d ma, d min die den sichtbaren Teil der Sene in den Einheitswurfel transformiert. Um wieder ein rechtshandiges Koordinatensstem u erhalten, wird unachst das Koordinatensstem so transformiert, da die Back Plane in die -Ebene verschoben wird. Abschlieend wird wieder an der -Ebene gespiegelt. Fur das Clippen von Kanten am Einheitswurfel bietet sich die dreidimensionale Erweiterung des Algorithmus von Cohen & Sutherland an: Der Bereichs-Code benotigt 6 Bits.

176 KAPITEL 15. BETRACHTUNGSTRANSFORMATIONEN 15.2.5 Device Mapping Die abschlieende Projektion der Sene in Schritt 4.) aus dem NPC auf den Bildschirm wird als Device Mapping beeichnet. Der Einheitswurfel enthalt dank der vorangegangenen Transformationen die gesamte darustellende Seneninformation. Die Abbildung mu lediglich die - und -Koordinaten aus dem NPC so in die Bildschirmkoordinaten DC (Device Coordinate Sstem) transformieren, da eine anschlieende Rundung die ganahligen Koordinaten der Piel ergibt. DC ist auf den meisten Bildschirmen ein linkshandiges Koordinatensstem. (Die -Achse eigt nach unten, oben links ist der Ursprung (0; 0).) Die Anahl der Piel im Ausgabefenster ist eibel und betrage horiontal sie und vertikal sie. In -Richtung mu dann das Intervall [0; 1] auf die diskreten Werte f0; :::; sie, 1g und in -Richtung [0; 1] umgekehrt auf fsie, 1; :::; 0g abgebildet werden. Die -Koordinaten dienen spater ur Bestimmung und Unterdruckung verdeckter Flachen, die sich durch die Staelung der Objekte in der Tiefe des Bildraumes ergeben (siehe -Buer-Algorithmus). (0; 1; 0) back plane NPC DC DC Displa sie front plane (0; 0; 1) NPC (1; 0; 0) sie Abbildung 15.9: Device Mapping Die Transformationsmatri entspricht einer Skalierung um den Vektor (sie;,sie; 1) konkateniert mit einer Translation des Ursprungs in die linke untere Ecke des Bildschirms (0; sie; 0). T NPC DC = 2 6 4 sie 0 0 0 0,sie 0 0 0 0 1 0 0 sie 0 1 Fur die Projektion werden einfach die - und -Werte ubernommen; die -Werte sind erforderlich ur Regelung der Sichtbarkeit beim Tiefenpueralgorithmus. 3 7 5

15.2. VIEWING PIPELINE 177 15.2.6 Zusammenfassung Abbildung 15.10 eigt die schematische Transformationspipeline im Uberblick. Diese wird bei der Ausfuhrung des Programms von Polgonen durchlaufen, aus denen sich die Elementarobjekte usammenseten. MC Modeling Coordinate Sstem MC WC Modeling WC World Coordinate Sstem WC VRC View Orientation VRC View Reference Coordinate Sstem VRC NPC View Mapping NPC Normalied Projection Coordinate Sstem NPC DC Device Mapping DC Device Coordinate Sstem Abbildung 15.10: Transformationspipeline

178 KAPITEL 15. BETRACHTUNGSTRANSFORMATIONEN

Kapitel 16 3D-Objekte Im Flachenmodell werden Objekte durch ihre Begrenungsachen beschrieben und diese wiederum durch ihre Kanten mit den Eckpunkten im Modellkoordinatensstem. Auerdem wird noch ein Normalenvektor im MC benotigt. Auf diese Weise kann ein Programm Poleder eakt darstellen und gekrummte Oberachen durch konvee Polgone beliebig gut approimieren. 16.1 Poleder Abbildung 16.1 eigt eine vom Projektionsalgorithmus ereugte Sene mit Wurfel und Tetraeder in der Drahtmodell-Darstellung mit gestrichelten Ruckkanten. Abbildung 16.1: Vom Projektionsalgorithmus berechnete Drahtgitter-Darstellung Am Beispiel des Wurfels soll die Reprasentation von Poledern im Halbkantenmodell erlautert werden. 179

180 KAPITEL 16. 3D-OBJEKTE 16.1.1 Wurfel Der Wurfel mit der Kantenlange 1 hat im MC die homogenen Eckpunktkoordinaten (+0:5; +0:5; +0:5; 1); (+0:5; +0:5;,0:5; 1); (+0:5;,0:5; +0:5; 1); (+0:5;,0:5;,0:5; 1); (,0:5; +0:5; +0:5; 1); (,0:5; +0:5;,0:5; 1); (,0:5;,0:5; +0:5; 1); (,0:5;,0:5;,0:5; 1): Da jede der sechs Flachen des Wurfels eben ist, gibt es pro Flache nur einen Normalenvektor, der durch das Kreuprodukt weier benachbarter Kanten berechnet werden kann. Die Reihenfolge der Punkte ist dabei signikant, da jeweils aufeinanderfolgende Punkte eine Kante bilden. Ein Quader entsteht aus dem Wurfel durch ungleichmaige Skalierung beim Modeling. Auch alle anderen Poleder werden im MC in der Halbkantendarstellung deniert, ein Tetraeder beispielsweise mit Kantenlange 1 und Schwerpunkt im Ursprung. 16.2 Gekrummte Flachen Eine gekrummte Oberache, die analtisch beschrieben werden kann, lat sich beliebig gut durch Polgone approimieren. Die Gruppe der Objekte mit analtisch gekrummter Ober- ache besteht aus wei Tpen: Wahrend.B. die Kugel nur aus einer solchen Flache besteht, sind Zlinder und Kegel aus mehreren Flachen usammengesett. Die Reprasentation der gekrummten Korper erfolgt im Flachenmodell mit einer Flachen- und Eckpunkteliste sowie einer Normalenliste, die pro Eckpunkt die ugehorige Normale enthalt. 16.2.1 Zlinder Der ur -Achse smmetrische Zlinder mit Hohe 2 und Radius 1 besteht aus einer Mantelache und wei Deckachen. Die beiden Kreisscheiben bei = 1 und =,1 lassen sich durch regelmaige n-ecke darstellen. Die Mantelache wird durch n Rechtecke approimiert. Dabei wachsen mit n sowohl die Genauigkeit der Approimation als auch der Rechenaufwand. Sei = (2)=n, so lauten fur ein solches Rechteck die vier Eckpunkte und die ugehorigen Normalenvektoren: Eckpunkt Normalenvektor (cos(); sin(); +1; 1) (cos(); sin(); 0; 0) (cos( + ); sin( + ); +1; 1) (cos( + ); sin( + ); 0; 0) (cos( + ); sin( + );,1; 1) (cos( + ); sin( + ); 0; 0) (cos(); sin();,1; 1) (cos(); sin(); 0; 0) mit = k, k 2f0; :::; n, 1g. Als Normalenvektor in einem Eckpunkt dieser Flache wird also der tatsachliche Normalenvektor der Mantelache genommen. Dadurch erhalten aneinandergrenende Flachen in ihren gemeinsamen Eckpunkten auch denselben Normalenvektor. Auf diese Weise ereugt das Programm bei der spateren Beleuchtung den Eindruck eines stetigen Ubergangs wischen den Flachen. Der Betrachter nimmt statt einer n-eckigen Saule den Zlinder wahr.

16.2. GEKR UMMTE FL ACHEN 181 n =8 MC Normalen Abbildung 16.2: Zlinder im Grundri mit Normalenvektoren der Mantelache 16.2.2 Kugel Die Oberache einer Kugel mit Radius 1 kann beschrieben werden durch (sin() cos(); sin() sin(); cos()); 0 <2; 0 <: Zur Approimation durch Flachen wird der Vollwinkel in n Teile erlegt: =(2)=n; n 2 N gerade : Dadurch entstehen auf der Kugel n=2 gleichgroe Langenkreise und (n=2, 1) verschieden groe Breitenkreise. Diese schneiden n Dreiecke an jedem Pol und n(n=2, 2) Vierecke aus der Kugeloberache. Die Ortsvektoren der Eckpunkte eines Dreiecks am Nordpol ( = 0) lauten (0; 0; +1; 1); mit = k, k 2f0; :::; n, 1g. (sin() cos(); sin() sin(); cos(); 1); (sin() cos( + ); sin() sin( + ); cos(); 1); Die Eckpunkte eines der Vierecke haben die Ortsvektoren (sin() cos(); sin() sin(); cos(); 1); (sin() cos( + ); sin() sin( + ); cos(); 1); (sin( + ) cos( + ); sin( + ) sin( + ); cos( + ); 1); (sin( + ) cos(); sin( + ) sin(); cos( + ); 1); mit = k ; k 2 N;k <nund = l ; l 2 N; 0 <l<(n=2, 1).

182 KAPITEL 16. 3D-OBJEKTE Als Normalenvektor wird in jedem Eckpunkt der Ortsvektor als Richtungsvektor (w = 0) eingetragen, denn der Radiusvektor steht senkrecht auf der Kugeloberache. Einen Ellipsoid ereugt der Rendering-Algorithmus aus der Kugel durch ungleichmaige Skalierung beim Modeling. Abbildung 16.3 eigt eine vom Projektionsalgorithmus ereugte Sene mit Kugel und Zlinder in der Drahtmodell-Darstellung ohne Ruckkanten (n = 32). Abbildung 16.3: Kugel und Zlinder als Drahtgitter