Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für...

35
1 Hier wird Wissen Wirklichkeit Modul: B-CG Grundlagen der Computergraphik Raster-Algorithmen und Antialiasing Prof. Dr. Detlef Krömker Professur für Graphische Datenverarbeitung Institut für Informatik Fachbereich Informatik und Mathematik (12) Prof. Dr. Detlef Krömker Institut für Informatik 2 Hier wird Wissen Wirklichkeit B-CG – V08 Rasteralgorithmen und Antialiasing Rückblick: Rendering-Pipeline Noch offen: Rastern (Scan Konvertierung): Umsetzen der geometrischen Primitive in ein diskretes Pixelbild: Abtastung Aliasing (Treppenstufen, …) Beleuchtungsrechnung Interaktion von Licht und Materie L Pixelfarbe Model and View Transformation Beleuchtungs- rechnung für Vertices Rastern (Scan Konvertierung) Klipping Projektion Screen Mapping Beleuchtungs- rechnung für Pixel Prof. Dr. Detlef Krömker Institut für Informatik 3 Hier wird Wissen Wirklichkeit B-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

Transcript of Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für...

Page 1: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 2: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 3: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 4: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 5: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 6: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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.

Page 7: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 8: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 9: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 10: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 11: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 12: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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.

Page 13: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 14: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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%

Page 15: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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)

Page 16: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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)

Page 17: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 18: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit 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

Page 19: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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.

Page 20: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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!

Page 21: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 22: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 23: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 24: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 25: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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!

Page 26: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 27: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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.

∆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

Page 28: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 29: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 30: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 31: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 32: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 33: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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

Page 34: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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]

Page 35: Modul: B-CG Grundlagen der Computergraphik 07V1... · 2 Prof. Dr. Detlef Krömker Institut für Informatik 4 B-CG – V08 Rasteralgorithmen und Hier wird Wissen Wirklichkeit Antialiasing

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