83
Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen und Antialiasing

V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

  • Upload
    haliem

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

Prof. Dr.-Ing. Detlef Krömker

Goethe-Universität, FrankfurtGraphische Datenverarbeitung

Graphische Datenverarbeitung

Raster-Algorithmen und Antialiasing

Page 2: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 3: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 4: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 5: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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.

Page 6: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 7: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 8: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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 +⋅=

Page 9: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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)

Page 10: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 11: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 12: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 13: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 14: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 15: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 16: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 17: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 18: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 19: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 20: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 21: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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}

Page 22: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 23: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 24: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 25: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 26: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 27: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 28: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 29: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 30: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 31: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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!)

Page 32: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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%

Page 33: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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)

Page 34: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 35: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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)

Page 36: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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!

Page 37: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

SS 200637Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker

Wird dramatisch Moiree (Resampling 1:2)

Page 38: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

SS 200638Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker

Noch schlimmerMoiree (Resampling 1:4)

Page 39: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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!

Page 40: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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 !

Page 41: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

SS 200641Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker

Skalierungen

Pixelreplikation

Anti-aliased Scaling

Page 42: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 43: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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!

Page 44: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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 ???

Page 45: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-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!

Page 46: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 47: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 48: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 49: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 50: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 51: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 52: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 53: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

SS 200653Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker

Aliasing 1. Art im 2D

x

y

Δx

Δy

ALIASING

R

Page 54: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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!

Page 55: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 56: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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ß

Page 57: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Δ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

Page 58: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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]

Page 59: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

SS 200659Computer Grafik7. Rasteralgorithmen und Antialiasing© Prof. Dr.-Ing. Detlef Krömker

Unweighted Area SamplingCatmull [CATM 78]

Probleme

Entspricht einemBoxfilter über der„Pixelfläche“

Page 60: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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“

Page 61: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 62: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 63: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 64: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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.

Page 65: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 66: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 67: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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.

Page 68: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 69: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 70: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 71: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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!

Page 72: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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)

Page 73: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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%

Page 74: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

=

Page 75: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 76: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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)

Page 77: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 78: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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)

Page 79: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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]

Page 80: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 81: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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, ...)

Page 82: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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

Page 83: V07 Rasteralgorithmen und Anitaliasing · Prof. Dr.-Ing. Detlef Krömker Goethe-Universität, Frankfurt Graphische Datenverarbeitung Graphische Datenverarbeitung Raster-Algorithmen

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