CG
-
- 1 / 67
-
Flashcards
Gourand Shading
Sauberer, da die Eckpunkte verwendet werden. Lict wird jeder Ecke hinzugefügt.
Phong Shading
- Gourand Shading, erstellt keine Highlights
- eine normale wird hier jeder Ecke zugeteilt
Tiling
- Mauer Texturen werden meist dabei genommen
Projektionen
Es gibt zwei Arten:
- Perspektive Projektion
> Menschliches Auge, oder Fotografie
- Parallele Projektion
> wird bei CAD oder Karten verwendet
Aspect Ratio
Horizontaler Zoom gibt den Aspekt Ration durch, was wir für die Auflösung benötigen.
Fragment Shader Übersicht
Eingabe:
- Interpolation von allen Attributen eines Vertex Shaders, wird gefüllt mit fragment Shader zusammen mit einem set of constant variables
Aufruf:
- wird bei jedem fragment == pixel aufgerufen
Ausgabe:
- Farbe des aktuellen Pixels
Rasterization
- Nimmt die bearbeiteten Eckpunkte und wandelt diese in Fragmente
Shader Input
- Uniform Werte
und pro Ecke Datenattribute
Quadtrees und Octress
- Quadtrees beschreiben Verbindungen zwischen Opjekten 2D
- Octrees werden in 3D Welten verwendet
Culling
Entfernen:
- entfernen Dreiecke, welche nicht verwendet werden in einem Frame
- Dreiecke hinter einer Kamera
- Dreiecke die zu Nah oder zu Weit entfernt von der Kamera sind
Sortieren:
> heute mit dem Z-Buffer ersetzt worden
BSP Tree
- wird von vorne nach hinten sortiert
- fängt mit irgendeinen Dreieck / Linie an
- Teilt die Fläche, wenn nötig
- nicht alle Konfigurationen enden im selbne Ergebnis
- nach dem Umwandeln, können wir diesen Tree für jede Kamera Position verwenden
Portals and Cells
- Für Innenraum rendering
- wenn eine Umgebung mit vielen Wänden gegeben ist und einigen Türen
Antiportals or occlusion volumes
- für Außen Umgebungen
Tilling an infinite plane
Tiling: Nutz x und z koordinaten um etwas in 2d darzustellen
homogenous space with x,y,w coordinate
plane parallel w=1
alle anderen Punkte dürfen nicht 1 sein
Alle Punkte werden auf w gemapped
Shader
Sprachen sind HSL - Direkt X
GLSL - OpenGL
CD - Nvidia
Usage of Shaders
- müssen compiled werden und gelinked
- müssen eine uniform besitzen
- haben vertex attribute
Set per-vertex input
old opengl colorpointer normalpointer ist veraltet
jetzt:
- gl.enalbeVertexAttributArray
funktioniert nicht wenn der index 2 vorher ist
Warum Texturen?
- eigenschaften von material
- erzeugt o. gestaltet das objekt in der realen welt
- für oberflächen wichtig
Environmental Mapping
- Simultane Reflektion
- Super für glänzende Flächen
- Cube Mapping
6 Texturen werden verbunden
wird 6 mal gerendert
blickwinkel wird reflektiert
Normal Mapping
- Bumpmapping wurde davon ersetzt
- ähnliche idee, besseres ergebnis
- kann mehr variationen verwenden
- normal mapping nutzt multichannel (r,g,b) u. ersetzt die normale
Nachteil von Normal Mapping
nicht einfach zu verwenden, benötigt extra werkzeuge
silhouetten reflektieren keine details
Displacement Mapping
geometrische position wird verschoben, abhängig vom wert der texture
benötigt tesselated surface
Light Maps
Jedes Licht kann vorgerendert werden, ohne die Frame rate einzubüßen
nur statisches Licht
Dynamisches Licht wird benötigt um was zu simulisieren
Shadow Maps
Nutzt den Z-Buffer
günstig
braucht speicher für den schatten
hat probleme mit z-bias
z-buffer
Pro:
- leicht einzufügen
- hardware basiert
- schnell u. effizient
Contra:
- benötigt texturen speicher
- z-fighting:
>zu nah beieinander liegende Objekte