CGA

Computergraphik

Computergraphik


T. G.
Diese Lernkarten behandeln fortgeschrittene Themen der Computergrafik auf Universitätsniveau, mit Fokus auf Algorithmen und Verfahren zur Darstellung von Objekten, wie Clipping, 3D-Rotationen und Projektionen. Sie eignen sich für Studierende der Informatik, die sich mit der Visualisierung und Manipulation von geometrischen Objekten auseinandersetzen, insbesondere mit Koordinaten, Vektoren und Algorithmen zur Entfernung verdeckter Bildteile.
Flashcards
71
Students
2
Language
German
Category
Computer Science
Level
University
Created / Updated
11.02.2015 / 10.03.2015

Flashcards

Was versteht man unter Rendering? 

den Prozess, ein Bild mit Hilfe eines Computers zu erzeugen

Wofür steht "Pixel" ? Wofür "Voxel" ? 

Pixel = Picture Element 
Voxel = Volume Element 

Wie sieht die Hierachie der CG-Interfaces aus ? 
Nenne je ein Gerät / eine Software jeder Schicht. 

Von oben nach Unten : 

1- My Program - Anwendungen z.B PS,Maya, Blender 
2- Application Libary - Jmonkey , Unity 
3- Graphics Libary - AMCgala , DirectX , OpenGL ,(Treiber)
4- Graphics Controller - Output Controller auf einer Grafikkarte (Treiber) 
5- Graphics Hardware - GPU

Hinweis: 1-3 sind Geräteunabhängig 
 

Was ist der "View Up Vector" ? 

Ein Vektor, der von der Position der  virtuellen Kamera aus nach oben zeigt  

Was versteht man unter Front-Clipping Plane ? 
Was unter Back-Clipping Plane? 

Front ;- und Back-Clipping Plane sind Ebenen , ab denen bzw bis zu denen eine virtuelle Kamera Objekte abbildet . 
d.h ein Objekt das hinter dem Back-Clipping-Plane der Kamera ist wird abgeschnitten bzw ist unsichtbar .

Welche Aussagen sind wahr? 

Welche Transformationen (von Szene zu Bild ) beinhaltet die Viewing Pipeline ? 

1 - Modell - Koordinaten in Welt-Koordinaten (Modelling) 
2 - Welt - Koordinaten abhängig von Kamera-Position in View-Koordinaten (View Orientation / View Mapping )
3 - View Koordinaten in Display - Koordinaten (Device Mapping)

Welche Verarbeitungsschritte werden in der Viewing-Pipeline durchlaufen ? (Von Modell zum Bild) 

1) Modelle & Szenen (zunächst abstrakt)
2) Geometrie und Datenstrukturen (Zur Darstellung der Modelle )
3) Objekt - & Materialeigenschaften
4) Betrachtungsparameter (Abstand zur Kamera, Viewing Angle ) , Beleuchtungsparameter  
5) Sichtbare Szenenteile ermitteln (Zwischen den Clipping Planes )
6) Entfernen verdeckter Bildteile (Innerhalb sichtbaren Szene überdecken sich sonst Objekte )
7) Projektion auf Darstellungsfläche (Tiefeninformation geht ins Bild ein(verdeckte Bildteile sind jetzt unsichbar))
8) Rasterung  (Übersetzen des Bildes in Pixel )

Was versteht man unter View Volume einer virtuellen Kamera ? 

Den Raum zwischen den beiden Clipping Planes 

Was ist Gegenstand der Computergraphik ? 
Was ist Gegenstand der Computational Geometry ? 
Was ist Gegenstand der Bildverarbeitung ? 
Was ist Gegenstand der Bilderkennung / Kognition ?

1) CG Gegegenstand ist Abbildung Objektraum => Bildraum 
2) Computational Geometry beschäftigt sich mit Objektraum , z.B Algorithmen zum lösen geometrischer Probleme 
3) Bildverarbeitung beschäftigt sich mit Bildraum , Basiert also auf Pixeln 
4) Bildkognition beschäftigt sich mit der Abbildung Bildraum = > Objektraum 

 

Bresenham Algorithmus : 

implizite Geradengleichung : a0x + a1y + a2

Was sagt a0 aus ? Was sagt a1 aus? 

Explizite Geradengleichung : y= mx +b 

=> y= dy/dx * x +b 

=> dx * y = dy * x + dx * b 

=> 0 = dy * x  - dx * y + dx * b 

=> a0  ist die Änderung der Geraden in y Richtung (dy)

=> a1 ist die negative Änderung der Geraden in x Richtung (-dx)

=> a2 = dx * b 

Wie lautet die Formel zur Berechnung des Abstands (Fehlers) der beim Bresenham betrachteten Punkte zur Originalgeraden? 

dist(x , y) = dy x - dx y + dx b 


Dabei sind x und y die Koordinaten der betrachteten Punkte (bei Bresenham : X = X+1 , Y=Y+1/2) 
dy und dx sind die Änderungen der Originalgeraden im Abschnitt 
zwischen X & X+1 
Sowie Y & Y+1/2 

Welche Aussagen zur Wahl des nächsten Pixels nach dem Bresenham Algorithmus sind wahr?
Die folgenden Größen beziehen sich auf Geraden im ersten Oktanten.  

d = Fehlergröße 

Nach jedem gesetzten Pixel wird die Fehlergröße beim Bresenham Algorithmus verändert , welche Aussagen sind wahr? 
Betrachtung im ersten Oktanten . 

Warum wird die Fehlergröße d beim Bresenham Algorithmus bei einem 
X-Achsenschritt genau um a0 verändert ? 
Diagonalschritt genau um a0 + a1 verändert ? 

Betrachtung im ersten Oktanten. 

d=d+a0 weil : 

Bei einem X-Achsenschritt wird die tatsächliche Steigung der Geraden in Y-Richtung ignoriert . Dieser Fehler geht jedoch nicht verloren , sondern wird in der Fehlergröße ( meistens d genannt) gespeichert. 


d=d+a0+a1 weil : 

Bei einem Diagonalschritt steigt die gezeichnete Gerade stärker als die Originalgerade , daher muss die Fehlergröße d gegen <0 gehen.
Um die Entscheidung für einen X-Achsenschritt bei großer Änderung in X-Richtung zu schneller zu erreichen , zieht man genau dx ab
(großes dx => d geht schneller gegen <0 => die Gerade wird wieder flacher ) 

Bei kleiner Änderung von X soll es länger dauern ,bis sich wieder für einen X-Achsenschritt entschieden wird
(kleines dx => d geht langsamer gegen <0 => Gerade wird erst später wieder flacher)    

Die Helligkeitswerte eines Bildes werden durch ein Zahlenarray repräsentiert. 
Was versteht man unter einem sog. " Schwellwertbild" ? 

Ein Bild, dass durch auf;- bzw abrunden der Helligkeitswerte ab einem bestimmten Schwellwert entsteht , 
das Schwellwertbild hat dann nurnoch weiße oder schwarze Pixel . 

Was kann passieren ,wenn man den floodfill Algorithmus auf ein nicht vollständig begrenztes Objekt anwendet? 

Es kommt zu "auslaufen" des Polygons  , d.h der Algorithmus durchdringt die Grenzen des Objektes und füllt außerhalb liegende Pixel 

Erkläre oderered Dithering , 
welches Ziel verfolgen alle Ditheringverfahren? 

Ein Bild wird repräsentiert als ein Array von Helligkeitswerten . 
Will man dieses Bild nun von einem Schwarz-weiß Drucker ausgeben lassen  ist es notwendig , vorliegende Grauwerte durch sinnvolles abwechseln von Schwarz und Weiß zu simulieren. 
Beim Ordered Dither legt man sich eine sog. Schwellwertmatrix ( Bayer Matrix) zurecht und kachelt diese über die Grauwerte des Bildes. Nun wird Pixelweise entschieden , ob der Helligkeitswert des Pixels über oder unter dem Schwellwert an dieser Stelle liegt.

Ziel : Illusion von Farbtiefe mit begrenzter Farbpalette  

Welche Aussagen sind wahr? 

Nenne die 3 Schritte der Window Viewport Transformation . Bei welchem Schritt der Viewing Pipeline wird diese durchgeführt ? 

Schritt 1) Schiebe Datenausschnitt (Window) in den Koordinatenursprung 
x'=x-xmin 
y'=y-ymin 

Schritt 2) Versetze Punkte aus Datenausschnitt im Verhältnis der Fenstergrößen 
u' = x' * ((umax - umin) / xmax-xmin) 
v' = y' * ((vmax-vmin  / ymax-ymin))

Schritt 3) Schiebe Fenster ( Viewport ) an richtige Stelle in Display - Koordinaten 
u= u' + umin 
v= v' + vmin 

Welche Aussagen bezüglich des Skalarprodukts zweier Vektoren sind wahr? 

Wie funktioniert das Clippen von Linien ? 

1) Fensterkanten orientieren (rechte Hand Regel ) 
2) Normale jeder Fensterkante zeigt nach innen 
3) E bezeichnet einen beliebigen Punkt dieser Fensterkante , pt bezeichnet den Schnittpunkt der Kante mit der Geraden 

4) Bestimme p1-p0 * n  
5) Bestimme E-p0 *n  / p1-p0 *n = t 

Fallunterscheidung :
Bei p1-p0 > 0 , entering =>
0 <= t <= 1  : p0 = pt 
t<0 Gerade ganz außen , nichts zeichnen 
t>1 Gerade ganz innen , nicht clippen 

Bei p1-p0 <0 , leaving => 
0<= t <= 1 : p1=pt 
t<0 ganz innen ,nicht clippen 
t>0 ganz außen , nichts zeichnen 


 

Wie lautet die Formel um zu ermitteln ,dass zwischen einer Fensterkante und einer Geraden ein Schnittpunkt existiert? 

Welche Aussagen bezüglich dem Clipping von Geraden sind wahr? 

Welche Aussagen zum Clipping von Gerade sind wahr? 

Annahme : p1 - p0 * n > 0 ===> entering 

Wie funktioniert das Error - Propagation Dithering nach Floyd - Steinberg ? 

1)Laufe das Bild von OL nach UR Zeilenweise . 
2)Setze einen Schwellwert , ab dem die Helligkeits;- oder Farbwerte auf bzw abgerundet werden . 
3) Beim Auf;- bzw Abrunden berechne den gemachten Fehler und rechne Ihn Anteilig auf die umliegenden Pixel 
4)WICHTIG : bei dieser Abarbeitungsreihenfolge darf der Fehler nie an ein darüber bzw links liegendes Pixel gereicht werden. 

5) Die Matrix, die die Fehleranteile für die Nachbarn festlegt sieht folgender maßen aus : 
0           0          0  
0           X       7/16
3/16      5/16   1/16 
 

Was ist der Half-Line Test und wozu wird er verwendet? 

Eine Technik um zu Testen ob ein Punkt in einem Polygon oder außerhalb liegt. 

Ziehe einen Strahl vom Punkt ins unendliche  ,
gerade Anzahl Schnittpunkte -> Punkt außerhalb 
ungerade Anzahl -> Punkt innerhalb 

Laufzeit : ca O(log n ) (N= Eckenanzahl des Polygons ) 


Probleme : 

Wie funktioniert das Verfahren der "Umkreisung" ? 

Umkreisung ist eine Technik zum testen  ob ein Punkt in / außerhalb eines Polygons liegt. 

Funktionsweise : 
Winkel haben eine Drehrichtung (gegen den Uhrzeigersinn = positiv ) 
=> betrachte alle Winkel , die Punkt mit Polygonkanten aufspannt , 
Wenn deren Summe = 2PI => Punkt innerhalb des Polygons 

 

Laufzeit : ca O(n/2 ) (N= Eckenanzahl des Polygons ) 
 

Wie funktioniert Morphing von Linien ? 
 

Eine Gerade wird beschrieben durch ihre beiden Enden 
p0 = Startpunkt 
p1 = Endpunkt  

Beim morphing werden diese Punkte gleichmäßig entlang einer Strecke bewegt . 
Gleichung : p0 + t(p1-p0) , 0 <= t <= 1 bestimmt die Position des Punktes auf der Strecke 

Was sind Blending Functions ? 
Welche Eigenschaften haben Sie ? 
 

Blending Functions (oder "Bindefunktionen") sind Funktionspaare mit den Eigenschaften : 
- Partitionen von 1 (beide addiert = 1 ) 
-Wert der Blendingfunction : f0(x) * P0  + f1(x) * P1  
f0 = Erste Funktion des Paares 
f1 = Zweite FUnktion des Paares 
p0 = Anfangswert der Interpolation 
p1 = Endwert der Interpolation  

Beispiele : 
Linear Blending
f0 = 1-t  , f1 = t 


   

Nenne eine Anwendung für sog. Blending Functions. 

Farbmischung, 

Beispiel : Es soll ein Array von verschiedenen Farben angelegt werden, die gleichmäßig von Rot bis Blau gemischt werden. 
Auf den Rotanteil wird dann eine der zwei Funktionen (f0) angewendet 
Auf den Blauanteil wird die andere der zwei Funktionen (f1) angewendet 

Ergebnis: Gleichmäßige Farbmischung mit der Eigenschaft, dass Rot und Blauanteil gemeinsam immer 100% erreichen. 

Zu welchem Zweck hat man Homogene Koordinaten eingeführt? 

Transformationen wie Skalierung oder Drehung basieren auf Matritzenmultiplikation , 
die Translation jedoch auf Vektoraddition . 
Um diese Abweichung zu vermeiden wurde mit HG auch die Translation auf eine Matrixmultiplikation zurückgeführt. 

Homogene Koordianten erlauben außerdem die Dartellung einer Geraden als Vektor. Diese Tatsache ist bei der Implementierung von Transformation mittels Matrixmultiplikation sehr hilfreich.

Überführe folgende Geradengleichungen in die Homogene Form .

1) x=2
2) 3x + 7y = 28
3) x=y

 

1) x=2 =>  1x + 0y =2  => 1x + 0y -2 = 0 => G=(1,0,-2)
2) 3x + 7y =28 => 3x + 7y -28 = 0 => G=(3,7,-28)
3) x=y  => 1x -1y + 0 = 0 => G=(1,-1,0)

 

Nenne eine andere Gleichung, die die gleiche Homogene Gerade beschreibt.
G=(0 , 20 , 1)

 

1 ist der "Freie Parameter" , Jedes Vielfache dieses Parameters beschreibt die gleiche Gerade .

z.B G=(0,40,2) oder G=(0,10,0.5)

Was passiert , wenn der Freie Parameter pw bei homogenen Koordinaten = 0 ist?
 

Bei der Darstellung einer Geraden oder einem Punkt darf der freie Parameter nicht 0 sein.
Wenn der Parameter jedoch 0 ist, stellt man nur eine Richtung (einen Vektor dar) .
Dies kommt Zustande , weil ein Vektor z.B PQ = Q-P  ist  , wenn Q und P in homogener Form jeweils pw=1 haben , wird diese Komponente bei bildung von Q-P  zu 0 .

Wie lautet die Formel zur Berechnung des Abstandes eines Homogenen Punktes von einer Homogenen Geraden ?

dist(G,P) = |G * P | / (sqrt(Gx^2 + Gy^2 ))

Erläuterung : G*P Winkel zwischen G und P
Sqrt(Gx^2 + Gy^2 ) Länge der Diagonale eines Quadrats zwischen G und P
bzw Seitenlänge eines aufgespannten Dreiecks nach Phytagoras.

Wie sieht die parametrische Geradengleichung aus?
Homogene form und normale form.

Normal : p0 + t* (p1-p0 )
=> p0x + t * (p1x-p0x) = x Koord.
=> p0y + t*(p1y-p0y) = y Koord.

Homogen (als Vektor)
p0x *(1-t) + p1x * t
poy * (1-t) + p1y * t
(1-t) + t

Wie sieht die Transformationsmatrix für eine Translation um dx = 5 und dy = 3 aus?

(1 0 5)
(0 1 3)
(0 0 1)

=>

(1 0 dx)
(0 1 dy)
(0 0  1 )

Wie sieht die Transformationsmatrix für eine Skalierung um den Faktor 2 aus?

(sx  0  0)
(0   sy 0)
(0    0  1)

sx= 2
sy = 2

Wie sieht die Transformationmatrix für eine Scherung um die X-Achse um den Winkel alpha aus?
 

1  alpha 0
0     1     0
0    0     1

=> x'=x + alphay
     y'=y

 

Study