Die Renderpipeline
Aufgabengebiet Abbildung einer 3D-Umgebung auf ein Rastergerät Verformung von Objekten Licht - Berechnungen Transformation in eine Ebene Texturierung Und vieles mehr ...
Das Pipelining-Konzept Charakteristika : Monotone Fließkomma-Berechnungen Hohe Geschwindigkeitsanforderung Große Datenmengen Parallelisierbar Vorteile einer Pipeline : Gleichzeitiges Arbeiten verschiedener Stufen Gleichzeitiges Abarbeiten verschiedener Daten ( SIMD )
Alle Stufen im Überblick Vertex Processing Tesselation Mapping World Transformation View Transformation Beleuchtung Projection Transformation Backface Culling Frustrum Culling Shading Pixel Processing Scan Conversion Texture Mapping Filtering Shading Depth-Test Alpha-Blending
Tesselation ( Teil 1 ) Zerlegung der 3D-Daten in Dreiecke
Tesselation ( Teil 2 ) Zerlegung der 3D-Daten in Dreiecke
Tesselation ( Teil 3 ) Zerlegung der 3D-Daten in Dreiecke Vorraussetzung an Polygone : Keine Kantenüberschneidung Polygone müssen konvex sein Keine Löcher Einfachheit
Mapping Displacement Mapping Bump Mapping Normal Mapping Modifikation der Vertices durch Texturdaten Absolut realistisch aber „teuer“ Bump Mapping Scheinbar hoher Detailgrad Geringe Leistungseinbußen Normal Mapping Texturdaten als Normalenvektoren Hoher Realitätsgrad
World Transformation Viele Positionsangaben sind lokal und nur für einzelne „Objekte“ gültig. Umrechnung in ein gemeinsam genutztes, globales Koordinatensystem
View Transformation Alle Positionsangaben sind unabhängig vom Betrachter Umrechnung aller Koordinaten entsprechend der Kamera-Position
Matrizen-Rechnung Verschiebung ( Translation ) Homogene Koordinaten
Lichtquellen Verschiedene Arten von Lichtquellen
Lichtbestandteile Ambientes Licht Diffuses Licht Spekuläres Licht Kein Ursprung Gleichmäßige Verteilung Diffuses Licht Helligkeitsverteilung richtet sich nach Normalenvektor Unabhängig von der Position des Betrachters Spekuläres Licht Reflexion in eine bevorzugte Richtung Ermöglicht Realistische Plastik- und Metalloberflächen
Beleuchtungsmodell ( lokal ) Bidirektionale Reflektanzverteilungsfunktion ( BRDF ) Gibt das Reflexionsverhalten von Materialien an Phong-Beleuchtung Erfüllt nicht den Energieerhaltungsatz Heuristisches Modell „Glanzpunkte“ Alternativen : Schlick – Beleuchtungsmodell Normal Mapping bzw. Bump Mapping Per-Pixel Lighting cosn (θ)
Gouraud-Shading Berechnung des Vertex-Normalenvektors mit Hilfe von benachbarten Flächen Interpolation der Eckpunkte über die gesamte Fläche
Phong-Shading Erweiterung des Gouraud-Shadings Berechnung der Normalen entlang der Kanten Farbwert berechnet sich aus zwei Normalen einer Zeile
Projection Transformation Umwandlung aller 3D-Daten in ein 2D-System Orthogonale Projektion ( Parallel ) Perspektivische Projektion ( Fluchtpunkt )
Backface Culling Rückseiten - Entfernung Ersparnis : ca. 50%
Frustrum Culling ( Clipping ) Reduktion der Umwelt auf einen Kegelstumpf Ersparnis : bis zu 85% ( 5/6 )
Perspective Division normierte Gerätekoordinaten
Viewport Transformation Anpassung des Höhen-Seitenverhältnisses Fenster – Koordinaten inkl. Tiefenwert Eintrag im Z-Buffer
Scan Conversion Auflösung eines Dreiecks in einzelne Fragmente Lineare Interpolation Lineare Kanteninterpolation
Texture-Mapping
Depth Test Punkte, die sich hinter anderen Objekten befinden dürfen nicht gezeichnet werden Z – Buffering Alpha Blending ?
Filtering Isotropisches Filtern Anisotropisches Filtern Bilinear MIP-MAPs Trilinear Anisotropisches Filtern Footprint Assembly
Anti-Aliasing Oversampling mit anschließender Tiefpassfilterung Full Scene AA Multisampling AA Verringerte Schärfe
Alpha - Blending Komposition des zu schreibenden Pixels mit dem im Bildspeicher bereits existierendem Farbwert.
Alternativen Vertex Shader Pixel Shader Geometry Processing frei programmierbar Nachfolger der Transform & Lighting – Funktion Beherrscht Formveränderungen und Lichtänderungen Pixel Shader Verändert Materialeigenschaften Spiegelungen Schattierung Lensglow und Lensflares
Ausblick – HDRR High Dynamic Range Rendering 8Bit Integer-Tupel (R,G,B) wird durch 16Bit floats ersetzt
Ausblick – UT2007 Unreal Tournament 2007
Ausblick – MGS 4 Metal Gear Solid 4
Raytracing Vorteile Probleme hohe Flexibilität leichtere Austauschbarkeit der Shader einfache Implementierung mit überschaubarer Komplexität Probleme Effekte wie Nebel oder Flammen kaum möglich Sehr hoher Rechenaufwand
Die Renderpipeline Fragen ? Wünsche ? Anregungen ?