CG


René Mayer
Diese Lernkarten bieten einen umfassenden Überblick über fortgeschrittene Konzepte der Computergrafik auf Universitätsniveau. Sie behandeln Themen wie Punkt, Linie, Dreiecke, Matrix, Position, Winkel, Textur, Shading, Polygone, Buffer und Mapping. Die Karteikarten sind ideal für Studierende und Fachleute, die sich mit den Grundlagen und fortgeschrittenen Techniken der Computergrafik vertraut machen möchten, einschließlich Rendering, Transformationen, Shading-Modelle und Optimierung von Polygonen.
Karten
67
Lernende
3
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
27.07.2015 / 17.01.2023

Lernkarten

Was ist ein Koordinatensystem

normalerweise in 2D u. beschreibt Paare u. ihre Distanzen, sowie Werte.

Vektoren und Punkte

Punkt > beschreibt eine Position

Vektor > beschreibt einen Richtung o. einen Unterschied

Translation (Übersetzung)

- Kann als ein Vektor gelten

Wenn eine Linie zwei Punkte besitzt, kann hiermit die Position geändert werden.

- bewahren die Länge einer Linie

- den Winkel

Rotation mit einer Matrix

- Verändert den Winkel, aber nicht die Länge

- jedoch bleibt der relative Winkel erhalten

 

Linien (Strahl) in ihrer parametrischen Form

- nützlich für eine Zeichnung einer Linie

- nutzt Delta_t von 0 bis 1

- Wie viele Iterationen durchlaufen werden, hängt von der Größe u. den Pixel des Bildschirms ab

Polylines

- sequenz von N Punkten, definieren eine Polyline

- jede p_n, p_n+1, beschreibt eine Linie

Polygone

- Sequenz on N Punkten

- N Punkt beschreibt das Linien Segment

Einfaches Polygon

Wenn die Linien Segmente nicht zusammenlaufen, redet man von einem simplen Polygon o. einfachen.

Konstruktion eines einfachen Polygones

Two Peasants algorithmus wird genutzt:

- wähle zwei extreme x-werte

- bau von zwei sets von punkten > über und unten der Linie

- Sortiere diese

Convex vs. Concave Polygones

Convex: 

- Jedes Paar von Punkten im Polygon

Concave:

- Paar von Punkten verbunden, auch außerhalb des Polygons

Graham Scan

Finden der P0 und sortieren den Rest anhand des Winkels

Winkel Kalkukaltion

- mit dem niedrigsten Gegenständ starten

- diese Winkel mussen nicht berechnet werden

List Lines vs. Line Strip

- Dopplungen und "Memory Overflow" entfernt

Triangles

Flach:

- drei Punkte

Vorder und Rückseite

- Geordnet

- CCW für OpenGL

Triangle Mesh Optimized

- jedes Dreieck hat eine eigene seperate Einheit

- benötigt 3 Punkte pro Dreieck

- beinhaltet 3 floats

Triangles Ratio

Vertices - Edges - Triangles Ratio V:T:E

- 6 mal mehr Dreiecken Eckpunkte als normal

Triangle Strip

- verbindet Dreiecke zu einem langen Streifen

- wird für Oberflächen benötigt

Triangle Fan

- verwendet wenn eine Disk oder etwas bedeckt werden soll

- n+2 Punkte pro n Dreieck

General Triangle MEsh

- erstelle seperat diese Topologie von der aktuellen 3D Position

Nutzt zwei Listen:

- triangle indices

- list of vertices

Index Größen

1 byte > 256 max vertices

2 byte > 65k max vertices

4 byte > 4 billionen ....

ByteBuffer nutzen

Müssen eine bestimmte Anzahl von Buffer als einen "direct memory ByteBuffer" zuteilen. Wird umgewandelt in einen Float/IntBuffer und dann können Daten eingefügt werden, von einem Array. Danach wird die Position zurück gesetzt.

ByteBuffer nutzen

Müssen eine bestimmte Anzahl von Buffer als einen "direct memory ByteBuffer" zuteilen. Wird umgewandelt in einen Float/IntBuffer und dann können Daten eingefügt werden, von einem Array. Danach wird die Position zurück gesetzt.

Square Matrix und Identity Matrix

Eine Matrix von n x n Dimensionen ist eine Square Matrix und ist mit n Diagonalen als Elemente befüllt. Eine Matrix mit nur einer Diagonalen wird als Identity Matrix bezeichnet.

Transposed Matrix

Hat folgende Notation:

n x m zu m x n Matrix

> Wird mit einem Script T markiert

Matrix multiplication

Um zwei Matrizen zu Multiplizieren, muss eine Bedingung gegeben sein.

Matrix A > muss in der Form A = n x k Matrix

Matrix B > B = k x m Matrix

- müssen ihre jeweiligen Spalten passen

Row vs. Column Vektoren

Row Vektors:

- kann als flaot geschrieben werden

- nutzt Direkt x

- transformationen vABDC

Column Vektor:

- wird bei OpenGL genutzt

- transformationen DCBAv

 

Lineare Transformation

- Linien bleiben Linien

- Winkel ändern sich

- Längen ändern sich

- Inhalt und Fläche ändert sich

- vieles ändert sich vllt. jedoch wird nicht "gebogen" o. "verzerrt"

Rotation (Drehung)

- Nutzt eine Axe

- Ein Wert bleibt fest

OpenGL Versionen

OpenGL 1 / 2:

- feste Funktionen

- beschränkt auf einer Auswahl von Operationen

- diese sind benannt

OpenGL 3 / 4:

- läuft auf moderne Hardware

- programmierbarer PipeLine Shader

- abstrakte Konzepte

- nicht so komfortabel wie version 2

- jedoch mehr flexibel in der Ausführung

 

Drawing Polygones

glVertex3f(), kann jedoch nur im Rahmen von glBeginn und glEnd angewandt werden.

Optimieren von Polygonen

glDrawElements(primitiver Typ, indexBuffer)

- malz eine bestimmte Anhalt von Eckpunkten von einem Typ

Elektromagnetische Radation

Wellen werden als Wellenlänger und Aptimtude definiert

Representing Reflections

- man redet von Absorbstion und Remission von Photonen

- Licht kommt rein und Fraktionen gelangen wieder zurück

Diffuse Reflection

- LAbertian Reflection (BRDF)

- Oberfläche sieht danach aus, als hätte sie die Selbe Helligkeit wie der Ausgangspunkt

Specular Relfectance

Nicht alle Materialien sind "diffuse", dies ist abhänig von der Betrachtung

I = (RVektor * VVektor)hochN

Local versus Global Models

Für richtiges Rendert wird meist nicht.-lokale Informationen benötigt. Jedoch ist die möglich Realistische Renderung, in der Globalen, da dort mehr Daten verwendet werden.

Ambient Lighting

Es wird zum Licht meist ein weiterer Faktor hinzugefügt /Ambient Lightning. Kleine Portionen von Licht werden per Grundeinstellung dem Model addiert.

Full Phong Model

besitzt:

- Ambient Komponenten

- Diffuse Komponenten

Specular Komponenten

Shading

Wir müssen meist mit Polygone Meshes arbeiten, deshalb gibt es mehrere Arten von Shading:

- flat

- gourand

- phong

Flat Shading

Es wird eine normale definiert in jedem Polygone. Licht wird in das Center geschrieben, woraus der Schatten berechnet wird. Dies erzeugt jedoch ein kachelartiges Muster auf der Oberfläche eines Models.

Lernen