Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für...
Transcript of Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für...
1
Hier wird Wissen Wirklichkeit
Modul: B-CG Grundlagen der Computergraphik
Raster-Algorithmen und Antialiasing
Prof. Dr. Detlef KrömkerProfessur für Graphische DatenverarbeitungInstitut für InformatikFachbereich Informatik und Mathematik (12)
Prof. Dr. Detlef KrömkerInstitut für Informatik
2 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Rückblick: Rendering-PipelineNoch offen:‣ Rastern (Scan Konvertierung):
Umsetzen der geometrischenPrimitive in ein diskretes Pixelbild:AbtastungAliasing (Treppenstufen, …)
‣ BeleuchtungsrechnungInteraktion von Licht undMaterie Ł Pixelfarbe
Model and ViewTransformation
Beleuchtungs-rechnung für Vertices
Rastern(Scan Konvertierung)
Klipping
Projektion
Screen Mapping
Beleuchtungs-rechnung für Pixel
Prof. Dr. Detlef KrömkerInstitut für Informatik
3 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Übersicht (4 Vorlesungsstunden)
1. Rastern von Strecken (Linien, Vektoren)‣ Differential Digital Analyser (DDA)‣ Algorithmus von Bresenham‣ Mittelpunktsalgorithmus
2. Mittelpunktsalgorithmus für Kreise, ... andere Primitive
3. Polygon-Rendering‣ Raster Scan mit Baryzentrischen Koordinaten‣ Scan-Line-Algorithmus
2
Prof. Dr. Detlef KrömkerInstitut für Informatik
4 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Übersicht (Fortsetzung)
4. Aliasing: Zusammenstellung der Probleme
5. Antialisaing: Ad-hoc Maßnahmen
6. Rückbesinnung auf die Theorie: Identifikation möglicher Lösungsansätze
7. Maßnahmen beim Rendering 1. Area Sampling2. Supersampling und Digitale Filterung3. Alpha-Channel und Compositioning4. A-Buffer
8. Zusammenfassung
9. Ausblick – Nächste Schritte
Prof. Dr. Detlef KrömkerInstitut für Informatik
5 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Rastern: Einleitung
Im Rasterisierer (Rasterizer) werden die einzelnen graphischen Primitive (Linien, Dreiecke, Polygone) in Rasterpunkte (Pixel) aufgelöst.
Für jedes Pixel werden dabei ggf. zusätzlich Operationen ‣ zur Verdeckungsrechnung (Hidden Line/Hidden Surface, inclusive Transparenz)‣ zur Beleuchtungsrechnung und zum Shading (geometrische Glättung
polygonaler Objekte) und‣ zur Texturierung
durchgeführt.
Prof. Dr. Detlef KrömkerInstitut für Informatik
6 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Rastern von Strecken
‣ Strecken werden oft auch (streng genommen falsch) Linien oder Vektoren genannt
‣ Wir zeigen die Algorithmen für eine Steigung von 00 bis 450
‣ Alle anderen Strecken können hieraus durch Vertauschen der X- und Y-Koordinaten unter Beachtung der Vorzeichen gewonnen werden
‣ Annahme: Strecken sind gegeben durch Anfangspunkt P1 = (x1,y1) und Endpunkt P2 = (x2,y2) Ł y = ax + b (x = [x1,x2])
‣ Zur Herleitung der Algorithmen nehmen wir weiterhin an: Anfangs- und Endpunkt liegen auf dem Rastermittelpunkt: Erweiterungen sind naheliegend, wenn die Algorithmen verstanden sind.
‣ Algorithmen:‣ DDA‣ Bresenham‣ Mittelpunktalgorithmus
3
Prof. Dr. Detlef KrömkerInstitut für Informatik
7 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Differential Digital Analyser (DDA) Prinzip: Explizite Geradengleichung nutzen
P x y1 1 1= ( , )
P x y2 2 2= ( , )
Berechne:
Herleitung:
( , ( ))
( , ( )
x round y
x Floor y
i i
i i= +1
2
Zeichne Pixel an der Stelle
− ≤ ≤1 1∆
∆
x
y
bxmy
xiixx
ii
i
+⋅=
∆=+= ,...,1,1
mxybx
y
bmxy
yyyxxx
⋅−=∆
∆=
+=
−=∆−=∆
11
1212
undm
mit
Prof. Dr. Detlef KrömkerInstitut für Informatik
8 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Kritik und Verbesserung des DDA
Ineffizient: jedes Pixelsetzen erfordert• floating point Multiplikation,• floating point Addition, • Rundung
1. Verbesserungsidee: Verwende inkrementellen Algorithmus, d.h. xi+1 berechnet sich aus xi und spare Multiplikation
x
yyy
xxx
yy
bxxxx
y
bxx
yy
ii
iii
iii
ii
∆∆
+=
=
−∆
∆+=
+−+∆∆
=
+⋅∆
∆=
+
+
+
+
++
1
i1i
1
1
11
sich ergibt 1x- xmit
)(
)(
m = (x2-x1)/(y2-y1)
for (x=x1,x<=x2,x++){
zeichne_pixel(x,round(y));
y=y+m;}
))(,(x setzen Pixel i i
ii
yround
bxmy +⋅=
1x
ym
∆∆
=
Prof. Dr. Detlef KrömkerInstitut für Informatik
9 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Verbleibende Nachteile DDA
∆
∆
∆ ∆
x x x
y y y
x y
= − ≥
= − ≥
≥
2 1
2 1
0
0
,
,
.P x y1 1 1= ( , )
P x y2 2 2= ( , )
Voraussetzungen:
Nachteile des inkrementellen DDA - immer noch:• Floating Point Addition• Rundung
2. Verbesserungsidee: Benutze ausschließlich IntegerarithmetikŁŁŁŁ Algorithmus von Bresenham (1965)
d.h. Gerade liegt im 1. Oktant
4
Prof. Dr. Detlef KrömkerInstitut für Informatik
10 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Algorithmus von Bresenham 1
Idee:Welcher Pixelmittelpunkt liegt näher zur (idealen) Geraden?
Ist d≤1/2 oder ist d>1/2?
x x:= +1 x x
y y
:
:
= +
= +
1
1
E Ey
x:= +
∆∆
E Ey
x:= + −
∆∆
1
E ≤ 0: E > 0:
Entscheidungsvariable Ey
x:= −
∆∆
1
2
=∆∆
y
x
Prof. Dr. Detlef KrömkerInstitut für Informatik
11 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Algorithmus von Bresenham 2Verbesserungsidee:Brüche vermeiden, d.h. auf ganze Zahlen erweitern? E Ł E‘
x x: = + 1 x x
y y
:
:
= +
= +
1
1
E Ey
x: = +
∆∆
E Ey
x: = + −
∆∆
1
E ≤ 0: E > 0:
Entscheidungsvariable Ey
x: = −
∆∆
1
2
′ = = −E xE y x: 2 2∆ ∆ ∆
′ = ′ +E E y: 2 ∆ ′ = ′ + −E E y x: 2 2∆ ∆
=∆∆
y
x
x∆⋅⋅ 2
00 >′≤′ EE
Prof. Dr. Detlef KrömkerInstitut für Informatik
12 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Vorteile des Bresenham Algorithmus
‣ Nur Integer-Arithmetik nötig
‣ Nur (schnelle) Addition, Subtraktion, Multiplikation mit 2 wird durch Shift implementiert (also keine Multiplikation nötig)
‣ Der Abstand zwischen Rasterpunkten und idealer Gerade ist minimal
‣ Die erzeugte Strecke verläuft genau durch die Anfangs- und Endpunkte
‣ Es entstehen symmetrische Punktfolgen bzgl. Anfang und Ende; im Inneren ggf. zyklische Pixelmuster
5
Prof. Dr. Detlef KrömkerInstitut für Informatik
13 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ziel: Erweiterung auf andere PrimitiveŁŁŁŁ Mittelpunktsalgorithmus
Vorraussetzungen wie bei der Herleitung des Bresenham-AlgorithmusWelches Pixel soll als nächstes gesetzt werden:
Dazu: Auf welcher Seite der Geraden liegt( , )x y x y+ 1 1 1 oder ( + , + )?
M x y= + +( , )11
2Dies lässt sich leicht mit der impliziten Geradengleichungermitteln:g x y y x x y x y y x( , ) * * ( * * )= − + −∆ ∆ ∆ ∆1 1
g x y x y
g x y x y
( , )
( , ) ,
+ + ≤
+ + >
11
20 1
11
20 1 1
, wähle Pixel ( + , )
wähle Pixel ( + , + )
∆
∆
∆ ∆
x x x
y y y
x y
= − ≥
= − ≥
≥
2 1
2 1
0
0
,
,
.
E
horizontal
diagonal
horizontal oder diagonal
Prof. Dr. Detlef KrömkerInstitut für Informatik
14 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Mittelpunktsalgorithmus für Linien –Inkrementelle Berechnung von g x y( , ):+ +1
1
2
g x y y x x y C C y x x y( , ) *( ) *( ) , * *+ + = + − + + = −11
21
1
21 1∆ ∆ ∆ ∆
Pixel ( + , ) gewähltx y1
g x y y x x y C( , ) * ( ) *( )+ + = + − + +21
22
1
2∆ ∆
g x y g x y y( , ) ( , )+ + = + + +21
21
1
2∆
Pixel ( + , ) gewähltx y1 1+
g x y y x x y C( , ) *( ) *( )+ + = + − + +23
22
3
2∆ ∆
g x y g x y y x( , ) ( , )+ + = + + + −23
21
1
2∆ ∆
g x y y x x y x y y x( , ) * * ( * * )= − + −∆ ∆ ∆ ∆1 1
E
Prof. Dr. Detlef KrömkerInstitut für Informatik
15 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Mittelpunktsalgorithmus lässt sich leicht auf andere Primitive erweitern, z.B. auf Kreise
Beschränkung auf
Imlizipte Kreisgleichung:
( , ) =
02
11
21
1
2
2 2 2
2 2 2
≤ ≤
+ −
+ − = + + − −
xR
f x y x y R
f x y x y R
:
.
( , ) ( ) ( )
Pixel ( + , ) gewähltx y1
f x y x y R( , ) ( ) ( )+ − = + + − −21
22
1
2
2 2 2
f x y f x y x( , ) ( , )+ − = + − + +21
21
1
22 3
Pixel ( + , ) gewähltx y1 1−f x y x y R( , ) ( ) ( )+ − = + + − −2
3
22
3
2
2 2 2
f x y f x y x y( , ) ( , )+ − = + − + − +23
21
1
22 2 5
S
E
E
6
Prof. Dr. Detlef KrömkerInstitut für Informatik
16 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ein Trick: 2.-te Ordnung DifferenzenBeim Kreis ändern sich die Differenzen in Abhängigkeit vonder aktuellen Pixelposition! ⇒ Erhöhter Aufwand!
f x y f x y( , ) ( , )+ − = + −21
21
1
2+ +2 3x
f x y f x y( , ) ( , )+ − = + −23
21
1
2+ − +2 2 5x y
Idee: Bilde für die Inkremente 2.-te Ordnung Differenzen. Diese sind bei quadratischen Formen wieder konstant. ∆
∆
∆ ∆
( , )
( , ) ( )
( , ) ( , )
x y x
x y x
x y x yO
= +
+ = + +
− + + =
2 3
1 2 1 3
1 1 2
∆
∆
∆ ∆
( , )
( , ) ( ) ( )
( , ) ( , )
x y x y
x y x y
x y x ySO
= − +
+ − = + − − +
− + + =
2 2 5
1 1 2 1 2 1 5
1 1 4
∆
∆
∆ ∆
( , )
( , ) ( )
( , ) ( , )
x y x
x y x
x y x yO
= +
+ − = + +
− + + =
2 3
1 1 2 1 3
1 1 2
∆
∆
∆ ∆
( , )
( , ) ( )
( , ) ( , )
x y x y
x y x y
x y x ySO
= − +
+ = + − +
− + + =
2 2 5
1 2 1 2 5
1 1 2
Prof. Dr. Detlef KrömkerInstitut für Informatik
17 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Circle Algorithm procedure MidpointCircle (radius, value : integer);
var x, y, d, deltaE, deltaSE : integer;
begin x:= 0; y:= radius; d:= 1 - radius; deltae:= 3; deltaSE := -2 * radius + 5; CirclePoints (x, y, value); while y > x do begin
if d < 0 then {Select E}begin
d := d + deltaE; deltaE := deltaE+2; deltaSE := deltaSE + 2; x:=x+1;
end else {Select SE}
begin d:= d + deltaSE; deltaE:= deltaE + 2; deltaSE :=deltaSE + 4;x:= x+ 1; y := y - 1;
end; CirclePoints (x, y, value) end; {while}
end; {MidpointCircle}
E
Prof. Dr. Detlef KrömkerInstitut für Informatik
18 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Erweiterung auf andere Primitive
In ähnlicher Art wie beim Kreis sind Erweiterung auf Ellipsen und andere Kurven, z.B. Parabeln möglich.
7
Prof. Dr. Detlef KrömkerInstitut für Informatik
19 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Rastern (Scannen) von Dreiecken
Dreieck ist gegeben durch dessen drei Eckpunkte (vertices):
Sehr häufig haben die Vertices Attribute, wieFarbe, Normalenvektor, Texturkoordinaten, etc.
Unsere Aufgabe ist es dann, beim Scanprozessdiese Werte linear zu interpolieren.
Es existieren viele Lösungsvarianten, aber eine besonders elegante ist die Nutzung von baryzentrischen Koordinaten.
),(
),(
),(
222
111
00
yx
yx
yx
=
=
=
p
p
p0
Prof. Dr. Detlef KrömkerInstitut für Informatik
20 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Rückblick auf V 2:Baryzentrische Koordinaten (1)
Seien x1, ..., xn die Eckpunkte eines Simplex (1D: Strecke, 2D: Dreieck, 3D: Tetraeder, … ) im Vektorraum A. Wenn für einen Punkt p aus A folgende Gleichung erfüllt ist,
so nennen wir die Koeffizienten (a1, ..., an) baryzentrische Koordinatenvon p zu x1, ..., xn.
Die Eckpunkte x1, ..., xn haben die baryzentrischen Koordinaten (1, 0, 0, ..., 0), (0, 1, 0, ..., 0), ..., (0, 0, 0, ..., 1).
xa ... xa p · )a ... (a nn11n1 ++=++
Prof. Dr. Detlef KrömkerInstitut für Informatik
21 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Baryzentrische Koordinaten – 2 Sätze
1. Baryzentrische Koordinaten sind nicht eindeutig: Für jedes von Null verschiedene b sind (b a1, ..., b an) ebenfalls baryzentrische Koordinaten von p.
2. Falls die Koordinaten a1, ..., an alle positiv sind und sich zu 1 aufsummieren, d.h. a1 +...+ an = 1, so liegt der Punkt p in der konvexen Hülle von x1, ..., xn, also dem Simplex mit diesen Eckpunkten Ł sehr gut für Interpolationen geeignet.
Zusammengenommen: Die Bedingung in 2.: a1 +...+ an = 1 kann bei positiven Koordinaten durch eine geeignete Skalierung mit
immer erreicht werden.naab
++=∑ ...1
1
8
Prof. Dr. Detlef KrömkerInstitut für Informatik
22 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Nutzung in der CG
)( a)( a
a a )aa1(
oder a a a
somit und 3n gilt Ebeneder in Dreieck ein Für
a ... aa ... a
a ... a
folgt 1a ... a
und a ... a · )a ... (a Aus
3322
332232
33221
n1
n1
n1
n1
n1n1
111
1
1
n1n1
n1
xxxxxp
xxxp
xxxp
xxxx
p
xxp
−+−+=
++−−=
++=
=
++=++++
=
=++
++=++
x1x2
x3
mit a2 und a3 haben wir zwei Parameter,mit denen wir über die Fläche des Dreiecksinterpolieren können.
Prof. Dr. Detlef KrömkerInstitut für Informatik
23 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Baryzentrische Koordinaten berechnen:
Gesucht sind die baryzentrischen Koordinaten eines Punktes p = (x,y) für das durch
aufgespannte Dreieck.
Das Dreieck habe die Attributwerte c0, c1, c2 an den Vertices = 1,2,3
),(
),(
),(
222
111
00
yx
yx
yx
=
=
=
p
p
p0
Prof. Dr. Detlef KrömkerInstitut für Informatik
24 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Raster Scan mit Baryzentrischen Koordinaten (1)
),(
),(1
),(
),(
)()yy(
)()(y
),(
),(
)()yy(
)()(y
liefert systemsGleichungs desLösen
) ()(
1mit
0012
12
1120
20
0220102120
02200220
2212
01
0110201210
01100110
0201
0201
0
0
02010
210
yxf
yxf
yxf
yxf
yxyxyxxx
yxyxyxxxy
yxf
yxf
yxyxyxxx
yxyxyxxxy
yyyy
xxxx
yy
xx
=−−=
=−+−+−
−+−+−=
=−+−+−
−+−+−=
⋅
−−
−−=
−
−
−+−=−
−−=
++=
γβα
β
γ
γβ
γβγβα
γβα
pppppp
pppp
p im Inneren oder am Rand des Dreiecks
9
Prof. Dr. Detlef KrömkerInstitut für Informatik
25 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Raster Scan mit Baryzentrischen Koordinaten (2)Der prinzipielle Algorithmus
for all x do
for all y do
compute (α,β,γ) for (x,y)
if (α∈[0,1] and β∈[0,1] and γ∈[0,1]) then // also innerhalb des Dreiecks
c=αc0 + βc1 + γc2
drawpixel (x,y) with attribute c
Prof. Dr. Detlef KrömkerInstitut für Informatik
26 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Raster Scan mit Baryzentrischen Koordinaten (2)Der Algorithmus
xmin = floor (min (x0,x1,x2))
xmax = ceiling (max (x0,x1,x2))
ymin = floor (min (y0,y1,y2))
ymax = ceiling (max (y0,y1,y2))
for y = ymin to ymax do
for x = xmin to xmax do
β = f20(x,y)/f20(x1,y1)
γ = f01(x,y)/f01(x2,y2)
α= f12(x,y)/f12(x0,y0)
if (α > 0 and β > 0 and γ > 0) then
c=αc0 + βc1 + γc2
drawpixel (x,y) with attribute c
Beachte: Wenn alle α, β, γ positiv, dannsind sie kleiner als 1, weil α = 1- γ - β
f20(x1,y1), f01(x2,y2) und f12(x0,y0) sind in den Schleifen konstant und können vorab berechnet werden.
In der inneren Schleife verändert sich nur x Ł f(x+1,y)=f(x,y)+const kann inkrementell berechnet werden.
Gleiches gilt für die äußere Schleife.
Prof. Dr. Detlef KrömkerInstitut für Informatik
27 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ergebnis: Ein Beispiel
1.000.000.00
1.000.250.00
1.000.500.00
1.000.750.00
1.001.000.00
0.750.250.00
0.750.500.00
0.750.750.00
0.751.000.00
0.500,500.00
0.500.750.00
0.501.000.00
0.250.750.00
0.251.000.00
0.001.000.00
255640
255128
0
255192
0
255255
0
192640
192128
0
192192
0
192255
0
128128
0
128192
0
128255
0
64192
0
64255
0
0255
0
25500
Rechnung liefert eine lineare Interpolation der Farbwerteentlang x- und y-Achse und auch den Diagonalen
An den Vertices gegeben: c0=(1 0 0) = rot, c1=(0 1 0) = grün, c2= =(1 1 0) = gelb
10
Prof. Dr. Detlef KrömkerInstitut für Informatik
28 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Aber ein Hinweis: Interpolation sieht nicht linear aus: Gammakorrektur nötig ŁŁŁŁ Farbe
1.000.000.00
1.000.250.00
1.000.500.00
1.000.750.00
1.001.000.00
0.750.250.00
0.750.500.00
0.750.750.00
0.751.000.00
0.500,500.00
0.500.750.00
0.501.000.00
0.250.750.00
0.251.000.00
0.001.000.00
255136
0
255186
0
255224
0
255255
0
224136
0
224186
0
224224
0
224255
0
186186
0
186224
0
186255
0
136224
0
136255
0
0255
0
25500
Annahme γ = 2,2: Ł Farbe = 255*ci1/ γ , also:
0 Ł 00.25 Ł 136 0,5 Ł 1860,75 Ł 2241 Ł 255
255640
255128
0
255192
0
255255
0
192640
192128
0
192192
0
192255
0
128128
0
128192
0
128255
0
64192
0
64255
0
0255
0
25500
mit Gammakorrektur γ = 2,2 ohne Gammakorrektur
Prof. Dr. Detlef KrömkerInstitut für Informatik
29 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Polygon-Rendering
Idee: (Scan Line Algorithmus)1. Finde Schnittpunkt der scan line mit allen Kanten des Polygons2. Sortiere Schnittpunkte nach wachsender x-Koordinate3. Fülle alle Pixel zwischen Paaren aufeinanderfolgender Schnittpunkte die
im Inneren des Polygons liegen.
Dieser Algorithmus behandelt beliebige Polygone:nach der Regel von der ungeraden Parität: Parität ist am linken Rand 0 und wird mit jedem Schnittpunkt um eins inkrementiert. Pixel wird gesetzt falls Parität ungerade.
Anm.: 1. Alle Polygoneckpunkte sind auf Integerwerte gerundet.2. Bei allen konvexen Polygonen (Dreiecken)entsteht nur ein Span.
Scanline
2 4 106 8 12
2
4
10
6
8
12
Das Gitter markiert die Pixelmittelpunkte
Prof. Dr. Detlef KrömkerInstitut für Informatik
30 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Scanline Algorithmus: Datenstrukturen
Kanten: e = ((xmin, ymin), (xmax, ymax), 1/m)
AET (Active Edge Table) (Kanten die von der aktuellen Scanline geschnitten werden):
(e1, ..., ek) sortiert nach xmin
ET (Edge Table) (alle Kanten, sortiert mit dem Bucket-Sortnach ymin (ein Bucket pro Scan line), danach nach xmin
minmax
minmax/1yy
xxm
−−
=
2 4 106 8 12
24
10
6
8
12
AB C
D
EF
ym
ax
xm
in
3/213 2 6 4-2/96 5
-5/4 6/413 2 13
1/m
ET (Edge Table)
0
AF
DEDF
CECB
AB
1313
7
-6
ym
in
11
Prof. Dr. Detlef KrömkerInstitut für Informatik
31 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Der Scanline Algorithmus
y:=ymin(e1) (erstes nichtleeres Bucket)AET = {} Repeat until the AET={} and ET={}
1 Move from ET bucket y to the AET those edges whose ymin = y (entering edges), then sort the AET on xmin
2 Fill in desired pixel values on scan line y by using pairs of x coordinates from the AET (odd parity rule)
3 Remove from the AET those entries for which y = ymax. (edges not involved in the next scan line)
4 Increment y by 1 (to the coordinate of the next scan line)
5 For each nonvertical edge remaining in the AET, update every x = x+1/mEnd {Repeat}
Prof. Dr. Detlef KrömkerInstitut für Informatik
32 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Beachte: Einfaches Prinzip – aber viele Detailprobleme1. Welche Pixel gehören zum Polygon? - Würde das Entscheidungskriterium des
Mittelpunkt-Algorithmus (wie vorgestellt) für die Kanten des Polygons genutzt, dannwerden auch Pixelanteile außerhalb des Polygons eingefärbt: Ł Problem bei aneinander anschließenden Polygone (z.B: ein Polygonnetz): die Randpixel (Kante) gehören zu beiden Polygonen!
2 4 106 8 12
2
4
10
6
8
12
2 4 106 8 12
2
4
10
6
8
12
Prof. Dr. Detlef KrömkerInstitut für Informatik
33 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Eine Lösung des 1. Detailproblems
Modifizierter MP-Algorithmus: Nur solche Pixel zeichnen, deren Mittelpunkt echt innerhalb des Polygons liegt … aber es verbleiben leider weitere Detailprobleme
2 4 106 8 12
2
4
10
6
8
12
2 4 106 8 12
2
4
10
6
8
12
12
Prof. Dr. Detlef KrömkerInstitut für Informatik
34 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
2. Problem: Pixelmittelpunkt liegt auf der Polygonkante
Schnitt Floatingpoint-x-Wertinnen sein Ł abrunden auf Ganzzahl außen sein Ł aufrunden auf Ganzzahl
Schnitt Integer-x-Wertlinker Endpunkt eines Spans: InnenRechter Endpunkt eines Spans: Außen
Prof. Dr. Detlef KrömkerInstitut für Informatik
35 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Zwei weitere Detailprobleme
3. Gemeinsamer Eckpunkt (Vertex) von Nachbarpolygonen
ymax-Vertex einer Kante wird nicht zur Berechnung der Parität gezählt
4. Horizontale KantenPixel horizontaler Kanten werden zur Berechnung der Parität nicht gezählt und fallen für weitere Berechnungen heraus
Prof. Dr. Detlef KrömkerInstitut für Informatik
36 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
... noch ein Problem
Splitter (Sliders)
Lösungsansatz: z.B. mit SubpixelverfahrenIdee: bestimme Anteil der überdeckten Fläche eines Pixels mit Hilfe von Subpixeln ... auch zum Antialiasing brauchbar, später.
13
Prof. Dr. Detlef KrömkerInstitut für Informatik
37 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
ZusammenfassungScan Line Algorithmus
‣ Algorithmus behandelt beliebige Polygone
‣ Achtung bei kreuzenden Linien oder Splitter (sehr schmale Polygone) ggf. zweiphasig arbeiten (1. Spans berechnen und 2. Füllen)
‣ Ist Basisalgorithmus und kann leicht erweitert werden:‣ um Füllmuster einzutragen (Texturen),‣ zur geometrische Glättung (Gouraud oder Phong) (nächste
Vorlesung!)‣ zur Verdeckungsrechnung (wenn Primitive sich nicht durchdringen,
muss der z-Vergleich nur an den Kanten durchgeführt werden!‣ auch das Klipping kann in die Berechnung der Spans einbezogen
werden
Prof. Dr. Detlef KrömkerInstitut für Informatik
38 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Zusammenfassung
‣ Rasteralgorithmen (Prinzipien) besprochen für‣ Strecken (Vektoren), Kreise, ... Ł Liniendarstellungen‣ können erweitert werden auf Komplexere Primitive, z.B: Ellipsen
‣ Dreiecke, Polygone Ł Flächendarstellungen
‣ Um die gewünschte Performance, z.B. 10.000.000 Polygone / Sekunde zu erreichen, ist eine spezielle Hardwareunterstützung (Graphik-Subsystem, GPU) nötig und üblich
‣ Einige weitere Details bleiben noch zu klären – insbesondere das Antialiasing:Vermeidung der Treppenstufen und weiterer Aliasing-Effekte
Prof. Dr. Detlef KrömkerInstitut für Informatik
39 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Übersicht (Fortsetzung)
4. Aliasing: Zusammenstellung der Probleme
5. Antialisaing: Ad-hoc Maßnahmen
6. Rückbesinnung auf die Theorie: Identifikation möglicher Lösungsansätze
7. Maßnahmen beim Rendering 1. Area Sampling2. Supersampling und Digitale Filterung3. Alpha-Channel und Compositioning4. A-Buffer
8. Zusammenfassung
9. Ausblick – Nächste Schritte
14
Prof. Dr. Detlef KrömkerInstitut für Informatik
40 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Das Problem
‣ Mit allen bisher vorgestellten Algorithmen erzeugen wir Treppenstufen ... der auffälligste Effekt
‣ Selbst bei einem „optimalen“ Rasterdisplay (4k x 4 k) würden sich noch Effekte zeigen durch das z.B. das „Noinussehen“
‣ Weitere Effekte sind je nach Primitiv (und Operation) verschieden:‣ Linien und Schrift‣ Polygone‣ Texturen
‣ All diese Probleme sind Abtasteffekte, die wir als Aliasing bezeichnen ... Gegenmaßnahmen nennen wir Antialiasing
Prof. Dr. Detlef KrömkerInstitut für Informatik
41 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Linien
Neben Treppenstufen zeigen Linien folgende Effekte
‣ Vertikale und horizontale Linien sind schwärzer als 450 Linien. Beachte: Abstand der Pixel beihorizontalen/vertkalen Linien =1450 Linien √2
Trotz Antialiasing:
‣ Perlschnüre an fast horizontalen/vertikalen Linien
(Die links gezeigten Linien sind schon antialised!)
Prof. Dr. Detlef KrömkerInstitut für Informatik
42 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Skalierte Linien
Nach dem Rendern skalierte Linien zeigen bei einfachen Algorithmen nochmals verstärkte Effekte:
‣ Unterbrechungen‣ anscheinend andere
Linienart:strichliertpunktiert
100% 20%
20%
15
Prof. Dr. Detlef KrömkerInstitut für Informatik
43 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Kleine Polygone
Polygone, die kleiner sind als die Pixelfäche oder sehr schmal sindzeigen in der Bewegung und ohneAntialiasing „bösartiges“ Aufblitzen (Szintilationen)
Prof. Dr. Detlef KrömkerInstitut für Informatik
44 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Polygone
‣ Zeigen ähnliche Effekte wie Linien an den
‣ Konturkanten (Geometrie), aber auch an
‣ Schattenkanten‣ Rändern von Hightlights
(Glanzlichtern, nächste Vorlesung)
‣ überall dort, wo große Farb-(insbesondere Helligkeits-)änderungen auftreten
ohne Antialiasing
Prof. Dr. Detlef KrömkerInstitut für Informatik
45 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Schrift
‣ Ist in jedem Fall als spezielles Primitiv zu behandeln
‣ Probleme insbesondere durch die kleinen Details, z.B. Serifen, ...
‣ „Normales“ Linien-Antialiasing liefert oft schlechte Ergebnisse, z.B. deutliche Unschärfe wie bei älteren Flash- Versionen
‣ Aus Gründen der optimalen, möglichst kontraststarken Darstellung müssen signaltheoretische Erwägungen zurücktreten
‣ Ł spezielle Bildschirmschriften‣ skalierbar (Truetype, ...)‣ Pixelschriften (optimiert für eine Größe, z.B. 18x10 Pixel)
16
Prof. Dr. Detlef KrömkerInstitut für Informatik
46 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Ein Beispiel – mit erkennbaren Qualitätsproblemen
Eine 16x16 Pixel Character Box: x,y ∈[0,15]G(x,y) ∈[0,1]; 0: schwarz, 1: weißAuf einem 17“-Bildschirm:
9 dots per inch Ł
18 dots per inch Ł
36 dots per inch Ł
72 dots per inch Ł
Prof. Dr. Detlef KrömkerInstitut für Informatik
47 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ein weiterer Abtast-Effekt: Moiree
hier einfaches Point Sampling:
Es entstehenniederfrequenteSrukturen!
Nicht wie erwünschtGrauwerte!
Prof. Dr. Detlef KrömkerInstitut für Informatik
48 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Wird dramatisch Moiree (Resampling 1:2) (Resampling 1:4)
17
Prof. Dr. Detlef KrömkerInstitut für Informatik
49 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
TexturenResampling (ein Vorgriff)
Point-Sampling (nearest neightbour)
Mipmapping
Summed Area Tables
Ein gutes Antaliasing ist extrem wichtig!Verfahren für Texturen behandeln wir
später!
Prof. Dr. Detlef KrömkerInstitut für Informatik
50 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Windows95 Banner
Ein sehr bekanntes Beispiel:
Zeigt sehr schön, dass die Anti-Aliasing-Maßnahme weit über das Pixel der Konturgrenze hinaus greifen müssen, aber auch, dass Auflösung,Gamma, etc. zu berücksichtigen sind !
Prof. Dr. Detlef KrömkerInstitut für Informatik
51 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
18
Prof. Dr. Detlef KrömkerInstitut für Informatik
52 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
„Spaghetti-Effekt“ (nach Walt Disney) nennt man inkorrekt auch „Time Aliasing“
dünne, schnell bewegte Linien sehen wir mehrfach
Sie erkennen auch Update-Effekte
Dies ist kein Problem des örtlichen Abtastens, sondern des zeitlichenAbtastens.
Weiteres hierzu in „Animation“
Prof. Dr. Detlef KrömkerInstitut für Informatik
53 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Aliasing und AntialiasingAuswirkungen und Effekte
Aliasing ist ein grundsätzliches Abtast- und Rekonstruktionsproblem mit vielen unangenehmen Effekten
Je nach Primitiv sind die subjektiven Wirkungen verschieden … entsprechend auch die Lösungen
Wir müssen unterscheiden:‣ Linien‣ Polygone‣ Texturen‣ Text
Prof. Dr. Detlef KrömkerInstitut für Informatik
54 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Abtasten, was heißt das genauer? –Noch ein Rückblick auf V 02
Betrachten wir wieder einen Ausschnitt aus „Lena“
Die Kreuzungspunke der Linien sind die Abtast -punkte und markieren z.B: den Pixelmittelpunktquadratische Apertur
Ideale Abtastung:Mit einer unendlichen dünnen „Meß-spitze“ wird der Bildfunktionswert am Abtastpunkt genau bestimmt.
Reale Abtastung:In einem Gebiet, z.B. Quadrat, Rechteck, Kreis (der endlichen Apertur) um den Abtastpunkt, werden die Bildfunktionswerte (ggf. gewichtet) aufintegriert und ein „Mittelwert“ gebildet.
33 56 61
69 22 52
47 69 58
24 55 59
56 49 63
44 55 64
Pixelwerte bei idealer und realer Abtastung
19
Prof. Dr. Detlef KrömkerInstitut für Informatik
55 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Die Gewichtung der Bild-Funktionswerte im Pixel
muss bei der realen Abtastung nicht einheitlich sein, ist aber oft symmetrischzum Pixelmittelpunkte
‣ Rechteck Ł Box‣ CCD-Abtaster
‣ Dreieck Ł Tent
‣ Glockenkurve Ł GaussianFlying Spot-Abtaster, Kameraröhreu.v.a.m.
‣ aber kann ein Nadelimpuls sein„ideale“ Abtastung
1
1
1
1
Prof. Dr. Detlef KrömkerInstitut für Informatik
56 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Glätten (= Antialising) von gerasterten Streckeneine adhoc Idee – Nutzung des Entscheidungsterms
Idee: Für jeden X-Wert (Spalten) werden zwei übereinanderliegen-de Pixel gesetzt. Die Gesamthelligkeit ist in jeder Spalte gleich und wird den vertikalen Entfernungen Eder beiden Pixel von der zu untersuchenden Strecke entsprechend verteilt, z.B. durch Ausnutzung des Entscheidungsterms E beim Bresenham-Algorithmus
Pixel1 = E Grau2 = 1-E also insbesondere
E=0: Grau = 1E=1: Grau = 0
dieses einfache Verfahrenverbessert die Darstellungschon erheblich! Aber es isteiniges zu beachten!
Prof. Dr. Detlef KrömkerInstitut für Informatik
57 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ergänzende Maßnahmen (1)
‣ Gammakorrektur muss immer vorgenommen werden, sonst sichtbare Helligkeitsschwankungen entlang der Linie wegen fehlerhaften Grauwertdarstellung
‣ Linien in geringem Abstand beeinflussen sich gegenseitig: schon hell gesetzte Pixel könnten von einer benachbarten Linie wieder dunkel gesetzt werden
Ł adhoc Lösung: einen neuen Helligkeitswert nur dann speichern, wenn er größer (heller) als der bereits gespeicherte ist.
20
Prof. Dr. Detlef KrömkerInstitut für Informatik
58 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ergänzende Maßnahmen (2)
‣ Linien mit einer Neigung von 0≤α≤π/4 sind gegenüber den Koordinatenachsen länger als achsenparallele Linien mit gleicher Pixelanzahl Ł subjektiv weniger gefärbt
‣ Um den Eindruck gleicher Helligkeit zu erreichen, muss deshalb der Grauwert mit dem Faktor 1/cos(α) skaliert werden.
‣ Verbesserte Algorithmen ??? optimale Algorithmen ???
‣ Wir müssen uns mit der Abtasttheorie (Signaltheorie) beschäftigen. (Manche werden sagen – leider?!? )
Prof. Dr. Detlef KrömkerInstitut für Informatik
59 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
• Abtastebene
• Reiz- & Aktionsebene
Signal- und Abtasttheorie
Digitales Bild
Rendering: spezielldas Rasterisieren
Anzeige (Display) Rekonstruktion
Aufnahme: Abtastung
(Bild-)funktion
2D array of integer
Prof. Dr. Detlef KrömkerInstitut für Informatik
60 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Ein kleiner Ausflug in die Systemtheorie
Ziel: Wir wollen das Abtasten mathematisch fassen, um so den Vorgang besser zu verstehen und um
‣ die optimalen Abtast-Bedingungen zu erkennen‣ zu erkennen, wann wir welche Fehler machen‣ um ggf. auftretende Fehler qualitativ und quantitativ beschreiben zu können‣ Ideen zur Minimierung dieser Fehler zu bekommen‣ unsere Lösungen zu bewerten
Vollständig geht das in dieser Vorlesung leider nicht! – Aber: Wir wollen die Grundzüge verstehen, dann ist ggf. ein Selbststudium gefragt!
Oder in der Veranstaltung DBV (Mester) wird dieses intensiv behandelt!
21
Prof. Dr. Detlef KrömkerInstitut für Informatik
61 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Eine spezielle „Funktion“: Der Diracsche Deltaimpuls nach Paul Dirac 1930
‣ wird über seine Haupteigenschaften definiert:
‣ Streng: Es gibt keine klassische Funktion δ mit diesen Eigenschaften. δ ist streng genommen eine Distribution (verallgemeinerte Funktion).
‣ andere Namen Diracfunktion, Deltafunktion, Nadelimpuls
∫∞+
∞−
=
≠=
1)(
0 für0:)(
dxx
xx
δ
δ
)()(),(
1),(
0, für0:),(
yxyx
dxdyyx
yxyx
δδδ
δ
δ
=
=
≠=
∫ ∫∞+
∞−
∞+
∞−
Prof. Dr. Detlef KrömkerInstitut für Informatik
62 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Der Diracsche Deltaimpuls
Die Deltafunktion läßt sich auch als Grenzwert einer Familie von Funktionen definieren, z.B:
anschaulich: eine Rechteckfunktion mit unendlich kleiner Impulsbreite und unendlicher Impulshöhe im Ursprung Ł Nadelimpuls
≤≤
=
⋅≡
→
byundaxfüryxrect
mityxrectba
yx
ba
ba
ba
1sonst0),(
),(4
1lim),(
,
,
0,
δ
ab
ba ⋅⋅4
1
Prof. Dr. Detlef KrömkerInstitut für Informatik
63 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Die Ausblendeigenschaft (Siebeigenschaft,sifting property) der Deltalfunktion:
Dieses Integral blendet an der Stelle x0 den Funktionswert f(x0) aus:
)()()( 00 xfdxxxxf∫+∞
∞−
=−δ
x
f(x0))(xf
x0
22
Prof. Dr. Detlef KrömkerInstitut für Informatik
64 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Ideale Abtastung eines Bildes erfolgt durch
S(x,y) Diracfeld = 2D Feld von Nadelimpulsen (δ-Impulsen)
x
y
∆y
∆x
),( yxS
∑ ∑∞+
−∞=
∞+
−∞=
∆−∆−
=
m n
ynyxmx
yxS
),(
),(
δ
Prof. Dr. Detlef KrömkerInstitut für Informatik
65 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Ideale Abtastung
Wir definieren als abgetastetes Bild fs:
f f x y s x y
f x y x m x y n y
f x y x m x y n y
f m x n ysonst
f x y für x m x y n y
s
m n
m n
= ⋅
= ⋅ − −
= ⋅ − −
= = = =
= −∞
∞
= −∞
∞
∑∑
∑∑
( , ) ( , )
( , ) ( , )
( , ) ( , )
( , )( , ) ,
,
,
δ
δ
∆ ∆
∆ ∆
∆ ∆ ∆ ∆0
Prof. Dr. Detlef KrömkerInstitut für Informatik
66 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Fouriertransformation 2D
F u v f x y e d x d yj ux u y( , ) ( , ) ( )=
− ∞
∞− +
− ∞
∞
∫ ∫
f x y F u v e d u d vj u x v y( , ) ( , ) ( )=− ∞
∞+
− ∞
∞
∫ ∫1
4 2π
OrtsraumOrtsfunktion f(x,y)i.d.R. reell
FrequenzraumFrequenzspektrum F(u,v)i.d.R. komplexwertig, d.h. besteht aus Amplitudenspektrum (Betrag) und Phasenspektrum
(Hin-)Transformation
(Rück-)Transformation
)sin()cos()( uyuxjuyuxe uyuxj +++=+−
23
Prof. Dr. Detlef KrömkerInstitut für Informatik
67 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Eigenschaften der 2D-Fourriertransformation
‣ Es sei f(x, y) die Funktion der Intensität im Punkt (x, y) und unter der Voraussetzung, dass die Integrale der Transformationsgleichungen existieren, dann sind die zugehörigen Ortsfrequenzen von f(x, y).
‣ Zwischen den stetigen Funktion f(x, y) und besteht eine eineindeutige Beziehung.
‣ Die Transformation einer Sinusfunktion ergibt ein Linienspektrum:
‣ Die Transformation des Deltaimpulses ergibt 1: 1
21 ,ξξ
( )21 ,ξξF
-1,5
-1
-0,5
0
0,5
1
1,5
0 15 30 45 60 75 90 105 120 135 150 165 180
ξ),( yxδ
Prof. Dr. Detlef KrömkerInstitut für Informatik
68 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Transformation weiterer Funktionen
1
∆x
−∆x
2
∆x
2
1 0.
1
∆x1 0.
1 0.
2∆x
1
∆x1 0.
2 0ξx
∆x∆x
4 0ξx
40
ξx
( )sinc1
x0
sinc2
y0
ξ
ξ
ξ
ξ
sinc1
x0sinc
2
y0
ξ
ξ
ξ
ξ
2
( )rect1
x0
rect2
y0
ξ
ξ
ξ
ξ
1
∆ ∆xtri
x
x
1
∆ ∆xrec t
x
x
1
∆ ∆x
x
xs in c
Prof. Dr. Detlef KrömkerInstitut für Informatik
69 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Beispiel: Abtastung der Funktion f(x,y)
01
23
45
67
89
0
1
2
3
4
0
5
10
15
20
25
30
35
40
45
y
f(x,y)
x
y
∆y
),( yxfS
∆=∆==∆∆= ynyxmxfüryxf
sonstynxmfyxf s
,),(0
),(),(
∆x
Eine systematische Untersuchung der Eigenschaften von zeigt u.a.:),( yxfS
24
Prof. Dr. Detlef KrömkerInstitut für Informatik
70 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Abtasttheorem nach Shannon (1): Abtastung
Ein bandbegrenztes Bild f(x,y), das orthogonal mit Abtastintervallenideal abgetastet wird, kann fehlerfrei rekonstruiert werden, wenn die Abtastfrequenzen größer als die Nyquist-Frequenzen 2bu und 2bv
sind.
∆ ∆x y,
12
12
∆ ∆xu b
yv bs u s v= > = >,
mit
F b bu v( , ) , ,ξ η ξ η= > >0
b bu v,
ss vu ,
Prof. Dr. Detlef KrömkerInstitut für Informatik
71 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Abtasttheorem (2): Rekonstruktion
Ein diskretes Bild lässt sich mit Hilfe eines (idealen) Tiefpasses mit der Übertragungsfunktion
rekonstruieren, so dass dieses mit dem ursprünglichen Signal identisch ist. Das rekonstruierte Bild ist dann
H u v x y r e c t u v m i t
b u b u n d b v b
h x y x y x y
T P
u u v v
T P
( , ) ( , )
( , ) s i n c ( ) s i n c ( )
=
< < − < < −
=
∆ ∆
∆ ∆
∆ ∆
ξ η
ξ η
ξ η
f x yd ( , )
π
π
π
π
)(
)sin(
)(
)sin(
),(),(
ny
y
ny
y
mx
x
mx
x
ynxmfyxfm n −
∆
−∆
−∆
−∆∆∆= ∑ ∑
∞
−∞=
∞
−∞=
Prof. Dr. Detlef KrömkerInstitut für Informatik
72 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Eine wunderschöne Theorie! - Aber
‣ Erfüllung des Abtasttheorems: ein bandbegrenztes Bildsignal ist Voraussetzung! – in der Praxis oft nicht gegeben!
‣ einen idealen Abtaster (Nadelimpuls) gibt es in der Praxis nicht!
‣ Rekonstruktion ist auch nicht ideal möglich (sinc-Funktion: „negatives“ Licht, unendlich ausgedehnt!)
‣ unvermeidbare Fehler können nur minimiert werden (dann bestenfalls unsichtbar): Diese sind
Aliasing 1. Art: Abtastfehler: Moiree, Scintillation,...Aliasing 2. Art: Rekonstruktionsfehler: Treppenstufen,..., Auflösungsverlust
25
Prof. Dr. Detlef KrömkerInstitut für Informatik
73 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Ortsraum
Frequenz-raum
bu Bandgrenze
Nyquistfrequenz
us Abtast-frequenz
Aliasing 1. Art: Veranschaulichung im 1D
-1,25
-1
-0,75
-0,5
-0,25
0
0,25
0,5
0,75
1
1,25
0 15 30 45 60 75 90 105 120 135 150 165 180
Prof. Dr. Detlef KrömkerInstitut für Informatik
74 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Aliasing 1. Art: Unterabtastung
Ortsraum
Frequenz-raum
bu Bandgrenze
Nyquistfrequenz
us Abtast-frequenz
-1,5
-1
-0,5
0
0,5
1
1,5
0 15 30 45 60 75 90 105 120 135 150 165 180
Prof. Dr. Detlef KrömkerInstitut für Informatik
75 Hier wird Wissen WirklichkeitB-CG – V01 Das Digitale Bild
Aliasing 1. Art: Veranschaulichung im 1D
-1,25
-1
-0,75
-0,5
-0,25
0
0,25
0,5
0,75
1
1,25
Ortsraum
Die beiden Sinusfunktionen ergeben abgetastet die gleichen Werte: Es gibt einen „ALIAS“ = „Doppelgänger“ 1.Bei der Rekonstruktion wird die niederfrequente Funktion rekonstruiert!2.Im Spektrum einer abgetasteten hochfrequenten Funktion gibt es genau diese niederfrequenten Anteile. Ł Gegenmaßnahme: Tiefpassfiltern!
26
Prof. Dr. Detlef KrömkerInstitut für Informatik
76 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Signaltheoretische Ansätze zum AntialiasingRückbesinnung (Das digitale Bild)
Wir unterscheiden folgende Fehlerursachen (nach Shannon: Abtasttheorem)‣ Verletzung des Abtasttheorems: Fehlende Bandbegrenzung
Ł Aliasing 1.Art ... das können wir ggf. beim Rasterisieren lösen
‣ Helligkeitsprofil einer Linie
also nicht so sondern irgendwie so
‣ Fehlerhafte Rekonstruktion: Rechteck/Gauß-Funktion anstelle der sinc-FunktŁ Aliasing 2.Art ... das können wir nur beim Anzeigen (Display) verbessern, besprechen wir später.
Prof. Dr. Detlef KrömkerInstitut für Informatik
77 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Aliasing 1. Art –Unser aktuelles Problem beim Rastern
‣ Ursache: Unterabtastung, Überlappung der Spektren
‣ Die Konturkanten werden trivialerweise als Sprünge angesehen = „unendlich steil“ Ł unendliches Spektrum Ł Nyquistgrenze liegt im Unendlichen!
‣ Einmal in ein digitales Bild eingebrachte Artefakte sind durch nachträgliche Filterung nicht korrigierbar
‣ Lösung geht nur über Bandbegrenzung:d.h. unser Bild wird weniger scharf!
Prof. Dr. Detlef KrömkerInstitut für Informatik
78 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Aliasing 1. Art Erste klassische Maßnahmen und Ansätze
‣ Bandbegrenzung des abzutastenden Bildes durch z.B.
‣ optische Unschärfe (im Videobereich eingesetzt!)‣ einfach, adhoc einsetzbar‣ wenig effektiv, weil Filterflanken nicht steil genug ‣ erfordert Abtastraten deutlich über Nyquistfrequenz‣ deutlich sichtbare Unschärfe
‣ endliche Abtastapertur ‣ hat Tiefpaßwirkung‣ führt direkt zum sogenannten Area-Sampling
27
Prof. Dr. Detlef KrömkerInstitut für Informatik
79 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Welcher Filter (shape) ist ideal?Region of Support?
‣ Idealer Tiefpaß mit einer Grenzfrequenz bg < : Rechteck im Frequenzbereich entspricht sinc-Funktion im Ortsbereich Ł minimaler Verlust von Bildschärfe
‣ Pixelbreite (-abstand) sei ∆x, dann sind die 1. Nullstellen der Sync-Funktion
eines idealen Tiefpasses mit der Grenzfrequenz in
2 Pixel Abstand, also sollte die Region of Support mindestens 4 Pixel breit sein
2∆x
1
∆x1 0.
2 0ξx
x0
1rectξ
ξ1
∆ ∆x
x
xs inc
Idealer Tiefpass
gus bx
bux
>∆
⇔>=∆ 2
12
1
x∆2
1
x∆2
1
Prof. Dr. Detlef KrömkerInstitut für Informatik
80 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Um den Abtastwert des roten Pixels näherungsweise bandbegrenzt zu bestimmen, sollten wir mindestens im gelben Quadrat gewichtet „aufsummieren“ und so eine Sync-Funktion aproximieren
oder minimal diskret bis zu den Nachbarpixel (8) rechnen
besser wäre hier noch weiter (in einem größeren Bereich) zu rechnen.
Prof. Dr. Detlef KrömkerInstitut für Informatik
81 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Übliche Approximationen der sync-Funktion
‣ Box (Rechteck)
‣ Dreieck (Bartlett Filter)
‣ Gauß
1
∆x
−∆x
2
∆x
2
1 0.
1
∆x1 0.
1 0.
2σ
∆x∆x
40
ξx
4 0ξx
( )sinc1
x0
sinc2
y0
ξ
ξ
ξ
ξ
sinc1
x0
sinc2
y0
ξ
ξ
ξ
ξ
2
e− +
2 2 2
12
22π σ ξ ξ1
2 2
2
22
πσσe
x−
1
∆ ∆xtr i
x
x
1
∆ ∆xrect
x
x
R
28
Prof. Dr. Detlef KrömkerInstitut für Informatik
82 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Maßnahmen in der Praxis
Idee: Area-Sampling (entspricht einer endliche Apertur)‣ unweighted (Rechteck, wie beim CCD-Chip)
Catmull [CATM 78]Flächenanteile am Pixel
werden beim Scannen errechnet:Pixel ist weder rot noch grünBeispiel: 70% grün, 30% rot
‣ weighted (mit größerem Abstand vom idealen Sample Punkt wird der Einfluß geringer (nach welcher Funktion?)
Abram, Westover, Whitted [ABRA 85]
Prof. Dr. Detlef KrömkerInstitut für Informatik
83 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Unweighted Area SamplingCatmull [CATM 78]Probleme
Entspricht einem keine kontinuierliche keine Änderung Boxfilter über der„Pixelfläche“ Wir sehen: Löst das Problem kleiner Flächen
noch unbefriedigend
Prof. Dr. Detlef KrömkerInstitut für Informatik
84 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Weighted Area Samplingohne overlap
Entspricht z.B. einem Dreiecksfilter über der„Pixelfläche“
Wir sehen auch hier: Löst das Problem kleiner Flächen noch unbefriedigend
29
Prof. Dr. Detlef KrömkerInstitut für Informatik
85 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Weighted Area Sampling with Overlap
Die Berechnung eines Abtastpunktes wirkt potentiell auf mindestens 9 Pixel !sehr hoher Aufwand
Prof. Dr. Detlef KrömkerInstitut für Informatik
86 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Weighted Area Sampling with Overlap nach [ABRA 85]
Signaltheoretisch besser : Hat jedoch sehr hohen Aufwand!
Man verwendet meist nur Area Sampling ohne Overlap in einer diskreten Variante Ł Supersampling
insbesondere beim RealtimeRendering
A B C
D E F
G H I
Prof. Dr. Detlef KrömkerInstitut für Informatik
87 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Supersamplingdie diskrete Variante des Area Samplings
Digitales
Bild
Graphik
n x m
n x m
pn x qm
Dig. Filter
TiefpaßStraight Forward Full-Scene Antialiasing FSAAAnstelle eines Abtastwertes berechnet man p*q Werte
30
Prof. Dr. Detlef KrömkerInstitut für Informatik
88 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Supersampling Schemata
In der Praxis sind verschiedene Schemata gebräuchlich!Man sucht möglichst wirksame, dabei aufwandsarme Möglichkeiten, z.B.Quincunx: 5 wirksame Abtastpunkte, aber im Schnitt müssen nur 2 Samples/ Pixel errechnet werden! Ecken werden auch von Nachbarn genutzt!
Prof. Dr. Detlef KrömkerInstitut für Informatik
89 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Probleme einfacher Subpixelmasken
Horizontale Polygonkante über der in (4x4 ) Subpixel aufgeteilten Pixelfläche.
Zahl der gesetzten Subpixel als Funktion der überdeckten Pixelfläche beim Supersampling
erwünschtes Verhalten, auch mit rotated Grid RGSS (eine mögliche Variante) nicht erreichbar.
Horizontale odervertikale Kante
DiagonaleKante
ErwünschtesVerhalten
Prof. Dr. Detlef KrömkerInstitut für Informatik
90 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Antialiasing
‣ Berechnung der überdeckten Fläche gemäß der Subpixelauflösung, z.B. 1/16 genau
‣ Beobachtung: z.B. bei 16 Subpixeln gibt es nur 32 mögliche Anordnungen bedeckter Subpixel
‣ z.B. Subpixelzahl und Kantenneigung und Abstand zum Pixelmittelpunkt als weitere Parameter nutzen (Schilling 91)
‣ diverse andere Varianten möglich
31
Prof. Dr. Detlef KrömkerInstitut für Informatik
91 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Beispiele für Filterdesign
In Realtime-Anwendungen häufig unweighted Subpixel: tragen gleichermaßen bei (Ausnahme Quincunx: Mitte 1/2, Ecke 1/8)
Signaltheoretisch besser (Approximation des Sync-Impulses):
‣ Bartlett-Fenster: Dreieck‣ Gaus-Fenster‣ Hanning-Fenster: Cosinusquadrat‣ Kaiser-Bessel-Fenster, u.s.w.
Prof. Dr. Detlef KrömkerInstitut für Informatik
92 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Beispiele: Filterkerne für 3x3 Subpixelmit ganzzahligen Gewichten
1 2 3 4 3 2 1
2 4 6 8 6 4 2
3 6 9 12 9 6 3
4 8 12 16 12 8 4
3 6 9 12 9 6 3
2 4 6 8 6 4 2
1 2 3 4 3 2 1
1 4 8 10 8 4 1
4 12 25 29 25 12 4
8 25 49 58 49 25 8
10 29 58 67 58 29 10
8 25 49 58 49 25 8
4 12 25 29 25 12 4
1 4 8 10 8 4 1
7x7 Bartlett Filter 7x7 Gauss Filter
1 2 3 2 1
2 4 6 4 2
3 6 9 6 3
2 4 6 4 2
1 2 3 2 1 5x5 Bartlett Filter 3x3 Bartlett Filter
1 2 1
2 4 2
1 2 1
Pixelfläche
Prof. Dr. Detlef KrömkerInstitut für Informatik
93 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
SupersamplingPro und Cons
Con: Löst das Aliasing-Problem 1. Art nur unvollständig: postfiltering d.h. es gilt
‣ Artefakte sind durch nachträgliche Filterung nicht vollständig korrigierbar!
aber
‣ Daumenregel: 4x4-faches Oversampling liefert zufriedenstellende Ergebnisse bei noch scharfen Konturen
‣ Texturen können trotzdem noch Probleme bereiten … kommt später
32
Prof. Dr. Detlef KrömkerInstitut für Informatik
94 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Weitere Tricks
‣ “leichtes” Rauschen kann Effekte noch weiter reduzieren
‣ Realisierbar durch stochastische Sampling: z.B. nach einer Poisson Verteilung (entspricht in etwa der Anordnung unserer Zapfen), wird häufig beim Raytracing genutzt
‣ Achtung: nur subjektive Wirkung: lediglich (für den Menschen) weniger störend
‣ vorsichtig einsetzen!
Prof. Dr. Detlef KrömkerInstitut für Informatik
95 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
αααα-Channel: Antialiasing und Compositingist heute die Standardlösung
Pixel p ist im Ergebnisbild weder rot noch grünBeispiel: 70% grün, 30% rot
Idee: Beim Rendering wird Überdeckungsinformation(coverage) generiert und „aufbewahrt“: Damit ist die Reihenfolge des Renderns unerheblichŁŁŁŁ zur Farbinformation zusätzlich αααα -Channel, alsop:= (r,g,b, αααα), αααα = [0,1]
z.B. im Pixelrotes Dreieck p = (1.0, 0.0, 0.0, 0.3)grünes Dreieck: p = (0.0, 1.0, 0.0, 1.0)
Beim Eintragen in den Bildspeicher muss gemäß der Coverage (α-Wert)geeignet „gemischt“ werden.
Prof. Dr. Detlef KrömkerInstitut für Informatik
96 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
αααα-Channel
no overlap total overlap proportional overlap
α -Wert liefert keine geometrischen Angaben (berücksichtigt keine Subpixel-Geometrie)aber ermöglicht das gewichtete „Mischen“ von Pixelbeiträgen
Annahmen: (1) immer proportional overlap !!!,(2) Gleichverteilung der Geometrie-Beiträge
dann gemeinsame Überdeckung = α A α B
33
Prof. Dr. Detlef KrömkerInstitut für Informatik
97 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Im Gegensatz: A-Buffer Algorithmus(= Subpixelmasken) berücksichtigt Subpixelgeometrie, wird aber selten genutzt!
=
=
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0
0 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0
1 1 1 1 1 1 1 1
B BetrachtetesPixel
=
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0
0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 1 1 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1
0 0 0 1 1 1 1 1
0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1
0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1
xor xor
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
=
Prof. Dr. Detlef KrömkerInstitut für Informatik
98 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Die wichtigsten Überdeckungs- (αααα Comp ) ) ) ) und Mischungsberechnungen (cComp )
Ergebnisse: Farbe cComp und Coverage α Comp :cComp = FA cA + FB cB
α Comp = FA α A + FB α B
FA, FB : Anteil des Pixels aus Bild A bzw. B
Operation cComp = α Comp=
α A cA + (1- α A) cB
A over B FA cA + FB cB FA α A + FB α B
B over A FA cA + FB cB FA α A + FB α B
A exor B FA cA + FB cB FA α A + FB α B
Prof. Dr. Detlef KrömkerInstitut für Informatik
99 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
αααα-ChannelFlächengrößen und mögliche Farben
R eg ion F läche
M öglich e
F arb en
w eder-noch (1 -αA) (1 -α
B) 0
nu r A αA(1 -α
B) 0 ,A
nur B α B(1-α A) 0 ,B
beide α A α B0 ,A ,B
αA= 30%
αB = 50%
Im Beispiel
Fläche Mögliche Farbe
0,35 blau
0,15 blau, rot
0,35 blau, grün
0,15 blau, grün, rot
34
Prof. Dr. Detlef KrömkerInstitut für Informatik
100 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Potentielle Überlagerungsmöglichkeiten (1)
Es sei:Result. Farbe cComp und Coverage α Comp :
cComp = FA cA + FB cB
α Comp = FA α A + FB α B
FA, FB : Anteil des Pixels aus Bild A bzw. BQuadrupel: Farben für die Fälle
(weder A noch B, A, B, beide)
Prof. Dr. Detlef KrömkerInstitut für Informatik
101 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Potentielle Überlagerungs-möglichkeiten nach Porter und Duff
Prof. Dr. Detlef KrömkerInstitut für Informatik
102 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Weitere Anwendungsmöglichkeiten des αααα-Channel
‣ darken‣ fade‣ fade (A,t) plus fade (B, 1-t)
Weitere hier nicht behandelte Probleme
‣Wie gewinnt man α-Wert, wenn die Ausgangsbilder dies nicht haben: Siehe Fiskin-Barsky [FISH 84]
35
Prof. Dr. Detlef KrömkerInstitut für Informatik
103 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Zusammenfassung
‣ Supersampling (trotz der bekannten Nachteile) ist oft günstigste Alternative und häufig genutztes Verfahren:Achtung: geeignete Supersampling-Geometrie wählen (ggf. sogar nicht regelmäßig, also stochastisch Ł leichtes Rauschen und damit weitere Milderung der Aliasing_Effekte) und Auswahl geeigneter Filter nötig
‣ für beste Bildqualität „Weighted Area Sampling with Overlap“Ł ein errechneter „Pixelwert“ wirkt potentiell auf die 8 NachbarpixelŁ sehr hoher Aufwand
‣ Compositing mit α-Channel ist geeignetes Update-Verfahren und für viele weitere Effekte nutzbar!
‣ alles durch Hardware gut unterstützt, aber auch in SW realisierbar
Prof. Dr. Detlef KrömkerInstitut für Informatik
104 Hier wird Wissen WirklichkeitB-CG – V08 Rasteralgorithmen und Antialiasing
Ausblick
‣ Beleuchtungsrechnung= Berechnung des Pixel-Farbwertes unter Berücksichtigung ‣ der Polygonfarbe (Körperfarbe)‣ der Glanzeigenschaften des Polygons
(stumpf ... Hochglänzend)‣ Der Beleuchtung (Lichtquellen, andere Objekte)‣ Umgebungseffekte (Dunst, Nebel, Rauch, ...)