Upload
haliem
View
216
Download
0
Embed Size (px)
Citation preview
Prof. Dr.-Ing. Detlef Krömker
Goethe-Universität, FrankfurtGraphische Datenverarbeitung
Graphische Datenverarbeitung
Raster-Algorithmen und Antialiasing
SS 20062Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
RückblickRendering-Pipeline
Noch offen:BeleuchtungsrechnungInteraktion von Licht undMaterie PixelfarbeRastern:
Umsetzen der geometrischenPrimitive in ein diskretes Pixelbild:AbtastungProblem des Aliasings (Kanten, Objekte in Pixelgröße)
Model and ViewTransformation
Beleuchtungs-rechnung
Projektion
Klipping
Screen Mapping
Rastern(Scan Konvertieren)
Visibilitätsrechnungz-Buffer
SS 20063Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Übersicht
1. Rastern von Strecken (Linien, Vektoren)Differential Digital Analyser (DDA)Algorithmus von BresenhamMittelpunktsalgorithmus
2. Mittelpunktsalgorithmus für Kreise, ... andere Primitive
3. Polygon-RenderingScan-Line-Algorithmus
SS 20064Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Übersicht (Fortsetzung)
4. Aliasing: Zusammenstellung der Probleme5. Erste Maßnahmen6. Rückbesinnung auf die Theorie: Identifikation
möglicher Lösungsansätze7. Maßnahmen beim Rendering = Abtastung
Area SamplingSupersampling und Digitale FilterungAlpha-Channel und CompositioningA-Buffer
8. Zusammenfassung 9. Ausblick – Nächste Schritte
SS 20065Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Rastern: Einleitung
Im Rasterisierer werden die einzelnen graphischen Primitive (Linien, Dreiecke, Polygone) in Rasterpunkte (Pixel) zerlegt.
Für jedes Pixel werden dabei zusätzlich Operationen • zur Verdeckungsrechnung (inclusive Transparenz)• zum Shading und• zur Texturierung
durchgeführt.
SS 20066Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Rastern von StreckenStrecken werden oft auch (streng genommen falsch) Linien oder Vektoren genanntWir 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 werdenAnnahme: 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: Erweiterung ist naheliegend, wenn die Algorithmen verstanden sind.Algorithmen:
DDABresenhamMittelpunktalgorithmus
SS 20067Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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= +12
Zeichne Pixel an der Stelle
− ≤ ≤1 1ΔΔ
xy
bxmyxiixx
ii
i
+⋅=
Δ=+= ,...,1,1
mxybxy
bmxyyyyxxx
⋅−=ΔΔ
=
+=
−=Δ−=Δ
11
1212
undm
mit
SS 20068Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Kritik und Verbesserung des DDA
Ineffizient: jedes Pixelsetzen erfordert• floating point Multiplikation,• floating point Addition, • Rundung
1. Verbesserungsidee: Verwende inkrementellen Algorithmus, d.h xi+1berechnet sich aus xi und spare Multiplikation
xyyy
xxxyy
bxxxxy
bxxyy
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
yroundbxmy +⋅=
SS 20069Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Verbleibende Nachteile DDA
ΔΔΔ Δ
x x xy y yx y
= − ≥= − ≥≥
2 1
2 1
00,,
.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 IntegerarithmetikAlgorithmus von Bresenham (1965)
SS 200610Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Algorithmus von Bresenham 1Idee:Welcher Pixelmittelpunkt liegt näher zur (idealen) Geraden?Ist d≤1/2 oder ist d>1/2?
x x:= + 1 x xy y::= += +
11
E E yx
:= +ΔΔ
E E yx
:= + −ΔΔ
1
E ≤ 0: E > 0:
Entscheidungsvariable E yx
:= −ΔΔ
12
=ΔΔ
yx
SS 200611Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Algorithmus von Bresenham 2Verbesserungsidee:Brüche vermeiden, d.h. auf ganze Zahlen erweitern? E E‘
x x:= + 1 x xy y::= += +
11
E E yx
:= +ΔΔ
E E yx
:= + −ΔΔ
1
E ≤ 0: E > 0:
Entscheidungsvariable E yx
:= −ΔΔ
12
′ = = −E xE y x: 2 2Δ Δ Δ
′ = ′ +E E y: 2Δ ′ = ′ + −E E y x: 2 2Δ Δ
=ΔΔ
yx
xΔ⋅⋅ 2
00 >′≤′ EE
SS 200612Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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; ggf. innen Zyklen
SS 200613Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Ziel: Erweiterung auf andere Primitive
MittelpunktsalgorithmusVorraussetzungen wie bei der Herleitung des Bresenham-AlgorithmusWelches Pixel soll als nächstes gewählt werden:
Auf welcher Seite der Geraden liegt ( , )x y x y+1 1 1 oder ( + , + )?
M x y= + +( , )1 12
Implizite Geradengleichung:
g x y y x x y x y y x( , ) * * ( * * )= − + −Δ Δ Δ Δ1 1
g x y x y
g x y x y
( , )
( , ) ,
+ + ≤
+ + >
1 12
0 1
1 12
0 1 1
, wähle Pixel ( + , )
wähle Pixel ( + , + )
ΔΔΔ Δ
x x xy y yx y
= − ≥= − ≥≥
2 1
2 1
00,,
.
E
SS 200614Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Mittelpunktsalgorithmus
Inkrementelle Berechnung von g x y( , ):+ +1 12
g x y y x x y C C y x x y( , ) *( ) *( ) , * *+ + = + − + + = −1 12
1 12 1 1Δ Δ Δ Δ
Pixel ( + , ) gewähltx y1
g x y y x x y C( , ) *( ) *( )+ + = + − + +2 12
2 12
Δ Δ
g x y g x y y( , ) ( , )+ + = + + +2 12
1 12
Δ
Pixel ( + , ) gewähltx y1 1+
g x y y x x y C( , ) *( ) *( )+ + = + − + +2 32
2 32
Δ Δ
g x y g x y y x( , ) ( , )+ + = + + + −2 32
1 12
Δ Δ
g x y y x x y x y y x( , ) * * ( * * )= − + −Δ Δ Δ Δ1 1
E
SS 200615Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Mittelpunktsalgorithmus lässt sich leicht auf andere Primitive
erweitern, z.B. KreiseBeschränkung auf
Imlizipte Kreisgleichung: ( , ) =
02
1 12
1 12
2 2 2
2 2 2
≤ ≤
+ −
+ − = + + − −
x R
f x y x y R
f x y x y R
:
.
( , ) ( ) ( )
Pixel ( + , ) gewähltx y1
f x y x y R( , ) ( ) ( )+ − = + + − −2 12
2 12
2 2 2
f x y f x y x( , ) ( , )+ − = + − + +2 12
1 12
2 3
Pixel ( + , ) gewähltx y1 1−
f x y x y R( , ) ( ) ( )+ − = + + − −2 32
2 32
2 2 2
f x y f x y x y( , ) ( , )+ − = + − + − +2 32
1 12
2 2 5S
O
E
SS 200616Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
2.-te Ordnung Differenzen
Beim Kreis ändern sich die Differenzen in Abhängigkeit vonder aktuellen Pixelposition! ⇒ Erhöhter Aufwand!
f x y f x y( , ) ( , )+ − = + −2 12
1 12
+ +2 3x
f x y f x y( , ) ( , )+ − = + −2 32
1 12
+ − +2 2 5x y
Idee: Bilde für die Inkremente 2.-te Differenzen
ΔΔΔ Δ
( , )( , ) ( )( , ) ( , )
x y xx y xx y x yO
= ++ = + +
− + + =
2 31 2 1 3
1 1 2
ΔΔΔ Δ
( , )( , ) ( ) ( )( , ) ( , )
x y x yx y x yx y x ySO
= − ++ − = + − − +
− + + =
2 2 51 1 2 1 2 1 5
1 1 4
ΔΔΔ Δ
( , )( , ) ( )( , ) ( , )
x y xx y xx y x yO
= ++ − = + +
− + + =
2 31 1 2 1 3
1 1 2
ΔΔΔ Δ
( , )( , ) ( )( , ) ( , )
x y x yx y x yx y x ySO
= − ++ = + − +
− + + =
2 2 51 2 1 2 5
1 1 2
SS 200617Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Circle Algorithmprocedure MidpointCircle (radius, value : integer); var x, y, d, deltaE, deltaSE : integer; beginx:= 0; y:= radius; d:= 1 - radius; deltae:= 3; deltaSE := -2 * radius + 5; CirclePoints (x, y, value); while y > x do
beginif d < 0 then {Select E}
begind := d + deltaE; deltaE := deltaE+2; deltaSE := deltaSE + 2; x:=x+1;
end else {Select SE}
begind:= d + deltaSE; deltaE:= deltaE + 2; deltaSE :=deltaSE + 4;x:= x+ 1; y := y - 1;
end; CirclePoints (x, y, value) end; {while}
end; {MidpointCircle}
E
SS 200618Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Erweiterung auf andere Primitive
In ähnlicher Art wie beim Kreis sind Erweiterung auf Ellipsen und andere Kurven möglich
SS 200619Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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 Anfang 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
scan line
2 4 106 8 12
24
10
68
12
Achtung: das Gitter markiertdie Pixelmittelpunkte
SS 200620Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Scanline Algorithmus Datenstrukturen
Kanten:e = ((xmin, ymin), (xmax, ymax), 1/m)
AET (Active Edge Table) (Kanten die von der aktuellen Scanlinegeschnitten 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
2 4 106 8 12
24
10
68
12
AB C
DEF
y max
x min
3/213 2 6 4-6-2/9
6 5
-5/4 6/413 2 13
minmax
minmax/1yyxxm
−−
=
1/m
ET (Edge Table)
0
AF
DEDF
CECB
AB
13 13
7
SS 200621Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Pseudo-Code (AET) y:=ymin(e1) (erstes nichtleeres Bucket)AET = {} Repeat until the AET={} and ET={}
1 Move from ET bucket y to the AET those edges whoseymin = 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/m
End {Repeat}
SS 200622Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Beachte: Einfaches Prinzip – aber viele Detailprobleme
1. 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
24
10
68
12
2 4 106 8 12
24
10
68
12
SS 200623Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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
24
10
68
12
2 4 106 8 12
24
10
68
12
SS 200624Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
2. 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
SS 200625Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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
SS 200626Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
... noch ein Problem
Splitter (Sliders)
Lösungsansatz: z.B. SubpixelverfahrenIdee: bestimme Anteil der überdeckten Fläche eines Pixels mit Hilfe von Subpixeln ... auch zum Antialiasing
SS 200627Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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 (Texturen) zu füllen,Geometrische Glättung und Beleuchtungsrechnung (Gouraud und Phong) zu ergänzen (nächste Woche!)Verdeckungsrechnung (wenn Primitive sich nicht durchdringen,
muss der z-Vergleich nur an den Kanten durchgeführt werden!Klipping kann in die Berechnung der Spans einbezogen werden
SS 200628Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Zusammenfassung
Rasteralgorithmen (Prinzipien) besprochen fürStrecken (Vektoren), Kreise, ...
LiniendarstellungenPolygone
Flächendarstellungenkönnen erweitert werden auf Komplexere Primitive, z.B: Ellipsen
Um die gewünschte Performance, z.B. 1.000.000 Polygone / Sekunde zu erreichen, ist eine spezielle Hardwareunterstützung (Graphik-Subsystem) nötig und üblich
Viele weitere Details bleiben noch zu klären – insbesondere das Antialiasing:
Vermeidung der Treppenstufen und weiterer Aliasing-Effekte
SS 200629Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Übersicht (Fortsetzung)
4. Aliasing: Zusammenstellung der Probleme5. Ein erster adhoc Lösungsansatz6. Rückbesinnung auf die Theorie: Identifikation
möglicher Lösungsansätze7. Maßnahmen beim Rendering = Abtastung
Area SamplingSupersampling und Digitale FilterungAlpha-Channel und CompositioningA-Buffer
8. Zusammenfassung 9. Ausblick – Nächste Schritte
SS 200630Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Das ProblemMit allen bisher vorgestellten Algorithmen erzeugen wir Treppenstufen ... der auffälligste EffektSelbst 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 SchriftPolygoneTexturen
All diese Probleme sind Abtasteffekte, die wir als Aliasing bezeichnen ... Gegenmaßnahmen nennen wir Antialiasing
SS 200631Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Linien
Neben Treppenstufen zeigen Linien folgende Effekte
Vertikale und horizontale Linien sind schwärzer als 450 Linien
Besonders starke Effekte:Perlschnüre an fast horizontalen/vertikalen Linien
und weitereSpaghetti-Effekt (dünne schnell bewegte Linien sehen wir mehrfach)
(Die links gezeigten Linien sind schon antialised!)
SS 200632Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Skalierte Linien
Nach dem Rendernskalierte Linien zeigen nochmals verstärkte Effekte:Unterbrechungenanscheinend andere Linienart:strichliertpunktiert
100% 20%
20%
SS 200633Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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 Bildschirmschriftenskalierbar (Truetype, ...)Pixelschriften (optimiert für eine Größe, z.B. 18x10 Pixel)
SS 200634Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Polygone
Zeigen ähnliche Effekte wie Linien an den
KonturkantenSchattenkantenRändern von Hightlights(Glanzlichtern)
überall dort, wo große Farb-(insbesondere Helligkeits-) änderungen auftreten
ohne Antialiasing
SS 200635Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Kleine Polygone
Polygone, die kleiner sind als die Pixelfäche oder sehr schmalzeigen in der Bewegung und ohne Antialiasing „bösartiges“Aufblitzen (Szintilationen)
SS 200636Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Ein weiterer Abtast-Effekt: Moiree
hier einfaches Point Sampling:
Es entstehenniederfrequenteSrukturen!
Nicht wie erwünschtGrauwerte!
SS 200637Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Wird dramatisch Moiree (Resampling 1:2)
SS 200638Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Noch schlimmerMoiree (Resampling 1:4)
SS 200639Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
TexturenResampling (ein Vorgriff)
Point-Sampling(nearest neightbour)
Mipmapping
Summed Area Tables
Ein gutes Antaliasing ist extrem wichtig!
Verfahren behandeln wir später!
SS 200640Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Windows95 BannerSehr 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 !
SS 200641Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Skalierungen
Pixelreplikation
Anti-aliased Scaling
SS 200642Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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:LinienPolygoneTexturenText
SS 200643Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Glätten (= Antialising)von gerasterten Strecken
eine adhoc Idee – Nutzung des EntscheidungstermsIdee: Für jeden X-Wert (Spalten) werden zwei übereinanderliegen-de Pixel gesetzt. Die Gesamthelligkeit ist in jeder Spalte gleich und wird den vertikalen Entfernungen E der beiden Pixel von der zu untersuchenden Strecke entsprechend verteilt, z.B. durch Ausnutzung des Entscheidungsterms E beim Bresenham-Algorithmus (Beispiel einer schwarzen Linie)
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!
SS 200644Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Ergänzende Maßnahmen
Gammakorrektur muss immer vorgenommen werden, sonst sichtbare Helligkeitsschwankungen entlang der Linie wegen fehlerhaften GrauwertdarstellungLinien 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.Linien mit einer Neigung von 0≤α≤π/4 sind gegenüber den Koordinatenachsen länger als achsenparallele Linien mit gleicher Pixelanzahl subjektiv weniger gefärbtUm den Eindruck gleicher Helligkeit zu erreichen, muss deshalb der Grauwert mit dem Faktor 1/cos(α) skaliert werden.Verbesserte Algorithmen ??? optimale Algorithmen ???
SS 200645Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Aliasing ist ein Abtastungs- und Rekonstruktionsproblem
AbtastungRekonstruktion
kontinuierliche Bildfunktion
diskretes Bild
Rendering
Idee: die Maßnahmen,die bei der Abtastungwirksam waren, beim Rendering nachbilden!
SS 200646Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Signaltheoretische Ansätze zum Antialiasing
Rü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ösenFehlerhafte Rekonstruktion: Rechteck anstelle der sinc-Funktion
Aliasing 2.Art ... das können wir nur beim Anzeigen (Display) lösen
SS 200647Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Abtasttheorem (1)
Ein bandbegrenztes Bild f(x,y), das orthogonal mit Abtastintervallen abgetastet wird, kann fehlerfrei rekonstruiert werden, wenn die Abtastfrequenzen größer als die Nyquist-Frequenzen sind.
Δ Δx y,
1 2 1 2Δ Δx
u by
v bs u s v= > = >,
mit F b bu v( , ) , ,ξ η ξ η= > >0
b bu v,
ss vu ,
R
SS 200648Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Abtasttheorem (2)Ein diskretes Bild lässt sich mit Hilfe eines (idealen)
Tiefpasses mit der Übertragungsfunktion
rekonstruieren, so daß 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 bh 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 ( , )
f x y f m x n y
xx
m
xx
m
yy
n
yy
nnm( , ) ( , )
sin( )
( )
sin( )
( )=
−
−
−
−=−∞
∞
=−∞
∞
∑∑ Δ Δ Δ
Δ
Δ
Δ
π
π
π
π
R
SS 200649Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
sinc-Funktion-1D
-0,25
0
0,25
0,5
0,75
1
1,25
f x xx
( ) sin=
π 2π 3π 4π−π−2π
©D
etle
f Krö
mke
rR
SS 200650Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
2D-Sinc - Die ideale Rekonstruktionsfunktion
-6,2
83
-4,7
12
-3,1
42
-1,5
71
0,00
0
1,57
1
3,14
2
4,71
2
6,28
3
7,85
4
9,42
5
10,9
96
12,5
66
0,000
1,571
3,142
4,712
6,283
7,854
9,425
-0,3-0,2-0,100,10,20,30,40,50,60,70,80,91
0,9-10,8-0,90,7-0,80,6-0,70,5-0,60,4-0,50,3-0,40,2-0,30,1-0,20-0,1-0,1-0-0,2--0,1-0,3--0,2
f x y xx
yy
( , ) sin sin= ⋅
©D
etle
f Krö
mke
r
SS 200651Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Reale Abtastung und Rekonstruktion
Die Forderungen des Abtasttheorems sind in realen Systemen nicht zu erfüllen. Im einzelnen:Bandbegrenzung: Reale Bildvorlagen sind nicht bandbegrenzt Aliasing (1.Art) ideale Abtastung (mit Diracimpuls): Reale Abtaster haben endliche Apertur Unschärfeideale Rekonstruktion (mit sinc-Funktion): Real nur Approximationen möglich
Aliasing (2.Art)
R
SS 200652Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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
ALIASDoppelgänger
©D
etle
f Krö
mke
rR
SS 200653Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Aliasing 1. Art im 2D
x
y
Δx
Δy
ALIASING
R
SS 200654Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Aliasing 1. Art –Unser aktuelles Problem beim Rastern
Ursache: Unterabtastung, Überlappung der SpektrenDie 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!
SS 200655Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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 einsetzbarwenig effektiv, weil Filterflanken nicht steil genug erfordert Abtastraten deutlich über Nyquistfrequenzdeutlich sichtbare Unschärfe
endliche Abtastaperturhat Tiefpaßwirkungführt direkt zum sogenannten Area-Sampling
SS 200656Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Was für ein Filter (shape)?Region of Support?
Idealer Tiefpaß wäre sinc-Funktion minimaler Verlust von SchärfePixelbreite sei x, dann Nyquist Frequenz 1/2xSync-Funktion 1. Nullstelle in 1Pixel Abstand also sollte die Region of Support 2 Pixel breit seinÜbliche Approximationen:
Box (Rechteck)Dreieck BartlettGauß
SS 200657Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Fourier Transformierte
1Δx
−Δx2
Δx2
10.
1Δx
10.
10.
2Δx
1Δx
10.
2 0ξx
2σ
ΔxΔx
4 0ξx
4 0ξx
( )sinc 1x0
sinc 2y0
ξξ
ξξ
⎛⎝⎜
⎞⎠⎟
sinc 1x0
sinc 2y0
ξ
ξ
ξ
ξ⎛⎝⎜
⎞⎠⎟
⎛⎝⎜
⎞⎠⎟
⎡
⎣⎢⎤
⎦⎥
2
e− +
⎛
⎝⎜⎜
⎞
⎠⎟⎟2 2 2
12
22π σ ξ ξ
( )rect 1x0
rect 2y0
ξ
ξ
ξ
ξ⎛⎝⎜
⎞⎠⎟
12 2
2
2 2
πσσex
−
1Δ Δx
trixx
⎛⎝⎜
⎞⎠⎟
1Δ Δx
rec txx
⎛⎝⎜
⎞⎠⎟
1Δ Δx
xx
sinc⎛⎝⎜
⎞⎠⎟
R
SS 200658Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Maßnahmen beim Rendering
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]
SS 200659Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Unweighted Area SamplingCatmull [CATM 78]
Probleme
Entspricht einemBoxfilter über der„Pixelfläche“
SS 200660Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weighted Area Samplingohne overlap
Entspricht z.B. einem Dreiecksfilter über der„Pixelfläche“
SS 200661Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weighted Area Sampling withOverlap
Die Berechnung eines Pixelwertes wirkt potentiell auf mindestens 9 Pixel !sehr hoher Aufwand
SS 200662Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weighted Area Sampling withOverlap nach [ABRA 85]
Signaltheoretisch korrektHat jedoch sehr hohen Aufwand!
Man verwendet meist nur AreaSampling ohne Overlap in einer diskreten Variante
Supersamplinginsbesondere beim
RealtimeRendering
A B C
D E F
G H I
SS 200663Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Supersamplingdie diskrete Variante des Area Samplings
DigitalesBild
Graphik
n x m
n x m
pn x qm
Dig. Filter
TiefpaßStraight ForwardFull-Scene Antialiasing FSAA
SS 200664Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Supersampling Schemata
In der Praxis sind verschiedene Schemata gebräuchlich!Man sucht möglichst wirksame, dabei aufwandsarme Möglichkeiten, z.B.Quincunx: nur 2 Samples/ Pixel! Ecken werden auch von Nachbarn genutzt!RGSS Rotated Grid Supersampling, usw.
SS 200665Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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 stochastischem Abtasten (eine mögliche Variante) kaum erreichbar.
Horizontale odervertikale Kante
DiagonaleKante
ErwünschtesVerhalten
SS 200666Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Antialiasing
Berechnung der überdeckten Fläche gemäß der Subpixelauflösung, z.B. 1/16 genauBeobachtung: z.B. bei 16 Subpixeln gibt es nur 32 mögliche Anordnungen bedeckter Subpixelz.B. Subpixelzahl und Kantenneigung und Abstand zum Pixelmittelpunkt als weitere Parameter nutzen (Schilling 91)diverse andere Varianten möglich
SS 200667Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Beispiele für Filterdesign
In Realtime-Anwendungen häufig unweightedSubpixel: tragen gleichermaßen bei (Ausnahme Quincunx: Mitte 1/2, Ecke 1/8)
Signaltheoretisch besser:Bartlett-Fenster: DreieckGaus-FensterHanning-Fenster: CosinusquadratKaiser-Bessel-Fenster, u.s.w.
SS 200668Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Beispiele für Filterkerne
1 2 3 4 3 2 12 4 6 8 6 4 23 6 9 12 9 6 34 8 12 16 12 8 43 6 9 12 9 6 32 4 6 8 6 4 21 2 3 4 3 2 1
1 4 8 10 8 4 14 12 25 29 25 12 48 25 49 58 49 25 8
10 29 58 67 58 29 108 25 49 58 49 25 84 12 25 29 25 12 41 4 8 10 8 4 1
7x7 Bartlett Filter 7x7 Gauss Filter
1 2 3 2 12 4 6 4 23 6 9 6 32 4 6 4 21 2 3 2 1
5x5 Bartlett Filter 3x3 Bartlett Filter
1 2 12 4 21 2 1
SS 200669Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weitere Möglichkeiten beim Filterdesign
Tschebyscheff-Approximation:füllt vorgegebenes Toleranzschema optimal auskonstante Welligkeit im Durchlaß- und SperrbereichAchtung: die berechneten Koeffizienten müssen genau genug realisiert werdenbei 8/9 Bit Wortlänge gehen Vorteile ggf. wieder verloren
SS 200670Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
SupersamplingPro und Cons
Con: Löst das Aliasing-Problem 1. Art nur unvollständig: postfiltering d.h. es giltArtefakte sind durch nachträgliche Filterung nicht vollständig korrigierbar! aberDaumenregel: 4-faches Oversampling liefert zufriedenstellende Ergebnisse bei scharfen Konturen Texturen können noch Probleme bereiten
SS 200671Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weitere Tricks
“leichtes” Rauschen kann Effekte noch weiter reduzierenRealisierbar durch stochastische Sampling: z.B. nach einer Poisson Verteilung (entspricht in etwa der Anordnung unserer Zapfen)Achtung: nur subjektive Wirkung: lediglich (für den Menschen) weniger störendvorsichtig einsetzen!
SS 200672Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
α-Channelist heute die Standardlösung
Pixel ist weder rot noch grünBeispiel: 70% grün, 30% rotBeim Rendering wird Überdeckungsinformation(coverage) generiert: α-Channelp:= (r,g,b, α), α = [0,1] z.B. (0,1,0,0.7)
SS 200673Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
α-Channelberücksichtigt keine Subpixel-Geometrie
aber ermöglicht das „aufaddieren“ von Pixelbeiträgen
no overlap total overlap proportional overlap
α -Wert liefert keine geometrischen Angaben
Annahmen: (1) proportional overlap gilt !!!,(2) Gleichverteilung für Geometrie
dann gemeinsame Überdeckung = α Α α Β
30%
50%
SS 200674Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Im Gegensatz A-Buffer Algorithmusberücksichtigt Subpixelgeometrie,
ist aber selten gebräuchlich!
A
B
=
=
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
BetrachteterBereich
=
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
=
SS 200675Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
α-ChannelFlächengrößen und mögliche Farben
R egion FlächeM öglicheFarben
w eder-noch (1-α A) (1-α B) 0
nur A α A(1-α B) 0,A
nur B α B(1-α A) 0,B
beide α A α B 0,A ,B
SS 200676Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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)
SS 200677Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Potentielle Überlagerungsmöglichkeiten (2)
operation quadruple diagram F A F B
clear (0 , 0 , 0 , 0) 0 0
A (0, A , 0 , A ) 1 0
B (0, 0 , B , B ) 0 1
A over B (0 , A , B , A ) 1 1-α A
B over A (0, A , B , B ) 1-α B 1
A in B (0, 0 , 0 , A ) α B 0
B in A (0, 0 , 0 , B ) 0 α A
A held out by B (0, A , 0 , 0) 1-α B 0
B held out by A (0, 0 , B , 0) 0 1-α A
A atop B (0, 0 , B , A ) α B 1-α A
B atop B (0, A , 0 , B ) 1-α B α A
A xor B (0 , A , B , 0) 1-α B 1-α A
SS 200678Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weitere Funktionsmöglichkeiten mit dem α-Channel
darkenfadeopaquefade (A,t) plus fade (B, 1-t)
SS 200679Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Weitere hier nicht behandelte Probleme
Wie gewinnt man α-Wert, wenn die Ausgangsbilder dies nicht haben:
siehe Fiskin-Barsky [FISH 84]
SS 200680Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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 Nachbarpixelsehr 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
SS 200681Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
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, ...)
SS 200682Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Glossar
Antialiasing beim RenderingArea SamplingWeighted Area SamplingA-BufferSupersampling und FilterungFilterkerne und FilterdesignAlpha-ChannelBildüberlagerung
(compositing) nach Porter und Duff
SS 200683Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker
Glossar
Rastern von LinienDifferential Digital Analyser (DDA)Algorithmus von BresenhamMittelpunktsalgorithmus
Mittelpunktsalgorithmus für Kreise, ...Glätten von gerasterten Linien:
Einfaches AntialiasingPolygon-Rendering
Scan-Line-Algorithmus