Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen...

102
Computergrafik - Inhalt §0 Historie, Überblick, Beispiele §1 Begriffe und Grundlagen §2 Objekttransformationen §3 Objektrepräsentation und - Modellierung §4 Sichttransformationen §5 Kurven und Flächen §6 Rendering und Visibilität §7 Mapping-Techniken CG – 2.1

Transcript of Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen...

Page 1: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

Computergrafik - Inhalt

§0 Historie, Überblick, Beispiele

§1 Begriffe und Grundlagen

§2 Objekttransformationen

§3 Objektrepräsentation und -Modellierung

§4 Sichttransformationen

§5 Kurven und Flächen

§6 Rendering und Visibilität

§7 Mapping-Techniken

CG – 2.1

Page 2: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.1 Begriffe

Computergrafik, Graphische Datenverarbeitung (computer graphics)

Grobe Einordnung: Synthese von Bildern mit Hilfe des Rechners Erzeugung eines Bildes (einer Bitmap) aus einer

(geometrischen) Beschreibung einer Szene Bei zeitabhängigen Szenenbeschreibungen:

Animation Ausgabemedien:

Bildschirm, Drucker, Plotter, Fräser, Projektor(en),...

CG – 1.2

Page 3: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.1 Begriffe

Computergrafik (cont.)

Die Disziplin der Computergrafik beschäftigtsich u. a. mit: Repräsentation (Datenstrukturen!) und Verarbeitung

(Algorithmen!) geometrischer, dreidimensionaler Objekte im Rechner

Berechnung von Bilddarstellungen aufgrund solcher Datenstrukturen (bis hin zu foto-realistischen Bildern), das sog. „Rendern“

Grafik-Hardware, Grafik-Software Grafisch-interaktive Systeme

CG – 1.3

Page 4: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.1 Begriffe

Computergrafik (cont.)

Modeling is figuring out the shape of it Rendering is how to make a picture of it Animation is figuring out how it moves with time

Jim Blinn, SIGGRAPH98 Keynote Address, Computer Graphics 33(1), pp. 43-47

CG – 1.4

Page 5: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Einfachste Grafikarchitektur

Prozessor Framebuffer

Memory

CG – 1.5

Page 6: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Der Framebuffer

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 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 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 0 0 0

CG – 1.6

Page 7: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Display Processing Unit:Bilddefinition für Ausgabe aufbereiten Rasterisierung,

Verdeckungs-/Beleuchtungsberechnung, Anti-Aliasing

Schreiben des Framebuffers

Video controller (Image Display System) Liest Framebuffer periodisch aus

Bild-defi-nition

CPU

DPU

Bilder-zeugung

Framebuffer

Bild-speicher

IDS

Bild-darstellung

Bildrechner

Dis

play

CG – 1.7

Page 8: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Quelle: FU Hagen

CG – 1.8

Page 9: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

3D Grafik – Virtuelle Kamera

CG – 1.9

Page 10: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Die Computergrafik-Pipeline / Die Rendering-Pipeline Der Prozess der Bildsynthese, also die Abbildung

eines Modells eines Objektes bzw. einer Szene auf ein Bild auf dem Bildschirm nennt man „Rendering“.

Eine konkrete Implementierung dieses Prozesses in Soft- und/oder Hardware beschreibt man als „Rendering-Pipeline“.

Die einzelnen Stufen der Pipeline setzen die noch vorzustellenden Basis-Algorithmen der Computergrafik um. Die einzelnen Stufen können jeweils in Soft- und/oder Hardware implementiert sein!

Der Aufbau von Rendering-Pipelines kann sich je nach Art und Umsetzung des Renderings stark unterscheiden!

CG – 1.10

Page 11: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Die Computergrafik-Pipeline / Die Rendering-Pipeline (cont.) Genereller Aufbau:

databasetraversal

modelingtransformation

viewingoperation

visible-surface determinationscan conversionshading

image

object model orscene model / scene graph

front-end(geometryprocessing)

back-end(rasterization)

CG – 1.11

Page 12: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Der Visualisierungsprozess / Die Visualisierungs-Pipeline

Daten

Pre-Processingtransform the data into something we can understand

Computer-grafik

Kognition

Interaktion

Datensammeln

CG – 1.12

Page 13: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.2 Grundlagen

Softwarearchitekturen

Anwendungsumgebung

high-level 3D-API*

low-level 3D-API*

Hardware

3D-Anwendung

* AP

I b

ed

eu

tet

"ap

plic

atio

n p

rog

ram

min

g in

terf

ace

"

CG – 1.13

Page 14: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.3 Graphische Eingabegeräte

Im Idealfall: Eingabegeräte abgestimmt auf Dimension der graphischen Darstellung: 2D: Navigation nur in Ebene notwendig

2D Eingabegerät (Maus, Tastatur, …) 3D: Navigation in Ebene unzureichend

3D Eingabegerät (Kinect, Wii-Mote, …)

CG – 1.14

Bilder: http://i.computer-bild.de

Page 15: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

Spaceball Fixierte Gummikugel

Kugel misst Kräfte

Druck in x-, y- und z-

Richtung verursacht

Verschiebung

(3 Freiheitsgrade)

Drehmomente verursachen

Rotation (3 Freiheitsgrade)

CG – 1.15

Spacemouse Gummischeibe

6 LEDs mit Schlitzblende

und Fotosensor

Prinzip analog zur Maus

6 Freiheitsgrade

1.3 Graphische Eingabegeräte

Page 16: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.3 Graphische Eingabegeräte

Haptische Geräte Force Feedback durch Exoskelett und Bowdenzüge

CG – 1.16

Page 17: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Begriffe Punktgröße (dot size): Durchmesser eines einzelnen

Punktes auf dem Ausgabemedium,Einheit: [mm], [inch]

Adressierbarkeit: Anzahl individuell erzeugbarer Punkte pro Längeneinheit, Beispiel: 1280 Pixel / 20“

Punktabstand: 1/Adressierbarkeit Auflösung (resolution): Anzahl unterscheidbarer

Punkte oder Linien pro Längeneinheit,Einheit: [L/mm], [dpi]

1m

m

1mm 1mm

1m

m

Adressierbarkeit= maximal zur Verfügung stehende Auflösung des Monitors

CG – 1.17

Page 18: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Röhrenbildschirm / CRT mit Rasterdisplay, einfarbig (cont.)

CG – 1.18

Page 19: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Röhrenbildschirm / CRT (cathode ray tube) mit Rasterdisplay, einfarbig (cont.) Phosphorschicht

Auftreffende Elektronen regen Phosphor zur Fluoreszenz an

Phosphor leuchtet nach: Phosphoreszenz Dauer des Nachleuchtens:

Persistenz (10-60 ms)

Bildwiederholfrequenz (30-100 Hz): Aufgrund geringer Persistenz muss das Bild ständig neu

aufgebaut werden Große Persistenz + kleine Frequenz: Bild verschmiert Kleine Persistenz + hohe Frequenz: sonst Flimmern

CG – 1.19

Page 20: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Röhrenbildschirm / CRT (cathode ray tube) mit Rasterdisplay, farbig Prinzip: Farb-Fernseher Mischung der Farben aus den Grundfarben Rot,

Grün, Blau Aufbau entspricht s/w-Röhrenbildschirm, zusätzlich:

Drei Elektronenkanonen (deltaförmig angeordnet) Drei Phosphorpunkte (rot, grün, blau) pro Pixel

deltaförmig auf der Phosphorschicht angeordnet Lochmaske vor der Phosphorschicht Elektronenstrahlen (moduliert) schießen gleichzeitig

durch die Lochmaske Konvergenzproblem: Elektronenstrahlen stoßen

einander ab

CG – 1.20

Page 21: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Flüssigkristallbildschirm / LCD LCD = Liquid Crystal Display Zwei Glasplatten im Abstand weniger μm schließen

Flüssigkristall ein Über zwei transparente Elektroden an beiden

Glasplatten kann ein elektrisches Feld im Flüssigkristall erzeugt werden

Einrahmung der Anordnung durch zwei um 900 gedrehte Polarisationsfilter

Bildschirm wird durch künstliches Licht von hinten beleuchtet; dieses wird durch hinteren Polarisationsfilter polarisiert

CG – 1.21

Page 22: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Flüssigkristallbildschirm / LCD (cont.)

CG – 1.22

Page 23: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Flüssigkristallbildschirm / LCD (cont.) Die organischen Moleküle

im Flüssigkristall drehen diePolarisationsrichtung um 900,falls kein elektrisches Feldanliegt

→ Licht passiert zweitenFilter ungehindert

CG – 1.23

Page 24: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Flüssigkristallbildschirm / LCD (cont.) Bei maximalem elektrischen

Feld wird die Polarisations-richtung idealerweise nichtgedreht

→ Licht passiert zweiten Filter nicht

CG – 1.24

Page 25: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Flüssigkristallbildschirm / LCD (cont.) Für Farbdarstellungen werden drei Flüssigkristall-

zellen zu einem RGB-Farbtripel zusammengefasst Die drei Elementarfarben werden über Farbfilter

über den Zellen erzeugt Die Zellen werden

matrixartig angeordnet

CG – 1.25

Page 26: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Plasma-Displays Prinzip 1: Plasma Adressed Liquid Crystal (PALC)

Von SONY entwickelt Funktionsweise analog des LCD-Displays Statt Flüssigkristall findet Plasma Verwendung Visuelles Ergebnis wie bei LCD-Displays

Prinzip 2: Plasma Display Panel (PDP) Wahre Plasmatechnik Pixel sind ca. 0,65mm groß und in 3 Kammern (RGB)

eingeteilt In Kammern: Neutral- bzw. Edelgas (Hauptbestandteile:

Neon und Xenon) Strom auf Adressierelektrode: Gas → Plasma UV-Strahlen des Plasmas regen Phosphor an

CG – 1.26

Page 27: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Plasma-Displays (cont.) Prinzip 2: Plasma Display Panel (PDP)

CG – 1.27

Page 28: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Plasma-Displays (cont.) Lichterzeugung mittels Gasentladung Matrix von Gasentladungszellen mit bi-stabilem

Zustand: Pixel anzeigen bei Zündspannung Pixel leuchtet bei mittlerer Brennspannung Pixel löschen bei Löschspannung

CG – 1.28

Quelle: Uni Karlsruhe

Abb.: Ansteuerung einer

Gasentladungszelle

Page 29: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

Plasma-Displays (cont.) Helligkeitssteuerung

Gas ändert nur sprunghaft Aggregatzustand Problem: Erzeugung verschiedener Helligkeitsstufen? Lösung: Trägheit des menschlichen Auges nutzen und

Gas „früher ausschalten“→ Phosphoranregung geringer

Vorteile der Plasmatechnologie: Geräte relativ leicht Hohe Auflösungen und Bilddiagonalen möglich

Nachteile: Vergleichsweise hoher Stromverbrauch I.d.R. Lüfter nötig (Geräusch!) Vergleichsweise hohe Produktionskosten

CG – 1.29

Page 30: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.4 Bildschirmtechnologien

OLED-Bildschirme Lichtemittierende Dioden (LED) aus Kunststoffen Vorteile:

Hoher Kontrast, da selbstleuchtend (LCDs nur Filter) da keine Hintergrundbeleuchtung, sehr dünn Reaktionszeit um ein Vielfaches schneller als bei LCD

(mehr als Faktor 1.000)

Nachteile: Niedrige Lebensdauer

(blau als begrenzenderFaktor)

Korrosionsanfälligkeit Teurer als LCDs

Anwendung vor allem in kleinen Bildschirmen (v.a. hochpreisige Smartphones, Tablets, …)

CG – 1.30

Bild oben: http://www.oled-info.comBild links: http://hiperdef.com

Page 31: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Shutter-Brille Doppelwandige Brillengläser sind mit LC gefüllt Normaler Bildschirm (>100Hz) zeigt abwechselnd

zwei Bilder aus verschiedenen Perspektiven Synchron dazu verdunkelt die Brille abwechselnd das

linke und das rechte Glas Synchronisation:

Funk Infrarot Kabelgebunden

CG – 1.31

Bild: Sony

Page 32: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Shutter-Brille

CG – 1.32

Page 33: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Polarisationsbrille Polarisierte Bilder für das linke bzw. rechte Auge

Head Mounted Display Zwei kleine LCD bieten

beiden Augen die Ansichteiner 3D Szene aus leichtunterschiedlichenPerspektiven an

Virtual Retinal System Bild wird direkt auf die Retina projiziert (zeilenweise) Bild ungefähr eine Armlänge entfernt Durchsichtmodus: regelbare Helligkeit

CG – 1.33

Page 34: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

BOOM:Binocular Omni-Orientation Monitor (Fakespace) Kopfgeführtes Sichtgerät mit stereoskopischer

Anzeige Benutzer kann sich innerhalb des Aktionsraums

frei bewegen Force Feedback Arme

CG – 1.34

Page 35: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Responsive Workbench Verwendung der Tisch-Metapher Neigbare Projektionsfläche Rückprojektion 3D durch Shutter-Brille

CG – 1.35

Page 36: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Powerwall Große Projektionsfläche Stereoskopische Ausgabe 3D durch Polarisations- oder Shutter-Brille 3D-Interaktion (eine Person) Benutzer kann sich innerhalb des Aktionsraums

frei bewegen

CG – 1.36

Page 37: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

CAVE Cave Automatic Virtual Environment Immersion über an Wände, Decke und Boden

projizierte Stereobilder 3D durch Shutter-Brille Tracking 3D-Surround-Sound

CG – 1.37

Page 38: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Autoskopische Bildschirme Image Splitter

herkömmliches LCD mit abwechselnd einer Pixelspalte für das linke und rechte Auge

Streifenmaske blockiertjeweils den Blick auf diejeweils andere Spalte

Funktioniert nur bei einemBetrachter undbestimmter Kopfposition

CG – 1.38

Quelle: Uni Karlsruhe

Abb.: Funktionsprinzip einesImage Splitters

Page 39: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Autoskopische Bildschirme Lentikularsystem

halbzylindrische Linsen vor Mattscheibe lenkenBilder in rechtes und linkes Auge

fester Betrachtungsabstand

Quelle: Uni Karlsruhe

Abb.: Funktionsprinzip eines

Lentikularsystems

CG – 1.39

Page 40: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme

Autoskopische Bildschirme Prismensystem

Bereich, in dem 3D-Effekt gesehen wird ("Sweetspot") ist normalerweise klein

Herkömmliches TFT-Display mit vorgeschaltetem Prismensystem

Tracking-Funktion: Prismen werden je nach Position des Betrachters verschoben

Quelle: SeeReal

CG – 1.40

Abb.: Funktionsprinzip des

Prismensystems

Page 41: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme - Bewertung

HMDs Preisgünstig Weites Spektrum an Bewegungen möglich Virtuelle, zwei-händige Interaktionen möglich Immersiv, aber unhandlich Geringe Auflösung und kleines Sichtfeld U.U. Übelkeit durch ungenaues oder langsames

Tracking Ein-Benutzer-System

CG – 1.41

Page 42: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme - Bewertung

Responsive Workbench Gute Auflöung Sehr natürliche Darstellung Natürliche Arbeitsumgebung (durch Tischmetapher) Virtuelle zwei-händige Interaktionen möglich Multiuser-Betrieb möglich Teuer (ca. 50.000 Euro) Eingeschränktes operationelles Bewegungsfeld

CG – 1.42

Page 43: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.5 3D-Sichtsysteme - Bewertung

Powerwall / CAVE Hohe Auflösung, großes Sichtfeld Ein aktiver und zahlreiche passive Nutzer Integration von echten Objekten im CAVE Multiuser-Betrieb möglich Sehr teuer

(Powerwall ab 60.000 Euro, CAVE ab 250.000 Euro) U.U. Übelkeit durch falsche Stereoskopieberechnung

oder ungenaues / langsames Tracking

CG – 1.43

Page 44: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung Motivation:

Die Rasterbildschirmtechnologie erfordert die „Zerlegung“ aller darzustellenden geometrischen Objekte in Bildschirmpunkte.

→ Rasterungs-Prozess

Problemstellung:(am Beispiel einer Linie/Geraden) Darstellung einer Linie auf einem Rasterbildschirm

erfordert die Bestimmung der „am besten passenden“ Punkte im Raster bzw. Gitter. → geeignete ganzzahlige Rundung

CG – 1.44

Page 45: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien Beispiel: Mögliche Rasterkandidaten

P1=(x1,y1)

P2=(x2,y2)

CG – 1.45

Page 46: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Beispiel: Rasterkandidaten

P1=(x1,y1)

P2=(x2,y2)

CG – 1.46

Page 47: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Anforderungen:

Linien sollen gerade erscheinen Linien sollen gleichmäßig hell erscheinen Helligkeit soll unabhängig von Richtung sein Linien sollen konstante Dicke haben Linien sollen schnell gezeichnet werden Algorithmus muss leicht in Hardware implementierbar

sein

CG – 1.47

Page 48: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.):Darstellung von Linien Gegeben: zwei Punkte

Gesucht: Beschreibung der Linie zwischen P1 und P2

1. Parametrisch:

2. Funktional:

3. Implizit:

CG – 1.48

yty

xtx

y

x

1

1

2 1 2 1( , )x x x y y y

1 1 1 2 2 2( , ), ,( )P x y P x y

y mx b

( , ) 0F x y ax by c

Page 49: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.): Naiver Algorithmus P1 und P2 gegeben in Integer-Koordinaten

Algorithmus benutzt funktionale Darstellung:

Durchlauf von x1 nach x2 im Pixelabstand,y-Werte berechnen und runden,zeichnen:double m = (y2-y1)/(x2-x1);double b = y1-m*x1

for (int x=x1; x<=x2; x++) {double y=m*x+b;setPixel(x,round(y));

}

CG – 1.49

y mx b

Page 50: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Probleme

Gleitkommawerte Divisionen und

Multiplikationen Rundungen senkrechte Linien

(Division durch 0!) Aussehen der Linien

bei verschiedenenSteigungen m

DDA-Algorithmus (digital differential analyzer), Digitaler Integrierer

Abb.: Rasterungen mit dem naiven AlgorithmusQuelle: Uni Magdeburg

CG – 1.50

Page 51: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Bresenham- / Midpoint-Line-Algorithmus für

Geraden: Keine Divisionen, nur Integer-Arithmetik Abhängig von der Steigung wird die x- oder y-

Koordinate immer um eine Einheit geändert. Die andere Koordinate wird entweder nicht oder ebenfalls um eine Einheit geändert, entsprechend der kleineren Abweichung der Geraden zum nächsten Gitterpunkt in Koordinatenrichtung.

3.

4.

5.

6. 7.

8.

1.Oktant

P2

x

y

P1

2. hier: Ursprung des zugeordneten

Koordinatensystems in P1

1. Oktant (0 ≤ Steigung ≤ 1)

P1 und P2 auf Raster

CG – 1.51

Page 52: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.)

CG – 1.52

Zuletzt gesetztes Pixel ist P Muss als nächstes NE oder E

gesetzt werden? Abstände von NE und E zur Linie

bestimmen und vergleichen

Leichter: Liegt M = (x+1, y+½) ober- oder unterhalb der Linie?

Wähle d = F(M) = F(x+1, y+½) als Entscheidungsvariable

F(M) > 0 → NE ist nächstes PixelF(M) ≤ 0 → E ist nächstes Pixel

Wie berechnet man F(M) ? → inkrementell

Quelle: Uni Magdeburg

F M a x 1 b y+1

c2

Page 53: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.)

CG – 1.53

1. Fall NE als nächstes Pixel ist nächster Mittelpunkt

2. Fall E als nächstes Pixel ist nächster Mittelpunkt

Quelle: Uni Magdeburg

1

1

23

2

NE

F M a x b y c

F M F M a b

d d y x d

2

2

12

2

E

F M a x b y c

F M F M a

d d y d

NE

E

y x

y

1M 2M

Page 54: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Initialisierung von d?

Startpunkt P1 liegt auf der Linie

Für den ersten Mittelpunkt M ist dann:

ist kein Integer

Nur Vorzeichen ist interessant: Multiplikation mit 2 Init: Fall 1: Fall 2:

CG – 1.54

Page 55: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Bresenham-Algorithmus, erster Oktant (nur

ganzzahlige Operanden und Operationen!):int x, y, d, dx, dy, delta_NE, delta_E; x = x1; y = y1;dx = x2 – x1; dy = y2 – y1;delta_NE = 2*(dy – dx); delta_E = 2*dy;d = (2*dy) – dx;setPixel(x,y);while(x<x2){

if(d >= 0) {d+=delta_NE; x++; y++;} // NEelse {d+=delta_E; x++;} // E

setPixel(x,y);}

CG – 1.55

Pseudocode nicht optimiert Erweiterung auf beliebige Steigungen:

Vertauschen von x und y, Vorzeichen, etc.

Page 56: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Linien (cont.) Beispiel:

0 1 2 3 4 5 6

1

2

3

4

5x y d plot

0 0 3 (0,0)

11 1 (1,1)2 2 -1 (2,2)

3 2 7 (3,2)

4 3 5 (4,3)

5 4 3 (5,4)

(0, 0)P1=

(5, 4)P2=

CG – 1.56

dx = 5, dy = 4delta_NE= -2delta_E = 8

Page 57: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

CG – 1.57

Problem: Beide Darstellungen sind rechenaufwändig und erfordern höhere Rechenoperationen!

Rasterung von Kreisen Darstellung eines Kreises mit Mittelpunkt (xM, yM)

und Radius r :1. Implizit:

2. Parametrisch: ) ·cos

( ) ·sin

[0,2 [

( M

My y

x

r

x r

Page 58: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Kreisen (cont.) Mit der Berechnung eines Kreispunktes sind durch

Symmetrie sieben weitere Kreispunkte gegeben.

Herangehensweise wie bei Geraden Voraussetzungen:

Radius Kreissegment im 2. Oktanten

CG – 1.58

( ) (, 0,0)M Mx y

Page 59: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Kreisen (cont.)

CG – 1.59

Zuletzt gesetztes Pixel ist P Muss als nächstes E oder SE

gesetzt werden? Abstände von E und SE zum Kreis

berechnen und vergleichen

Leichter: Liegt M = (x+1, y-½) ober- oder unterhalb der Linie?

Wähle d = F(M) = F(x+1, y-½) als Entscheidungsvariable

F(M) < 0 → E ist nächstes PixelF(M) ≥ 0 → SE ist nächstes Pixel

Wie berechnet man F(M) ? → inkrementell

Quelle: Uni Magdeburg

2 2 2( ) ( 1)1

)2

(F M x y r

Page 60: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Kreisen (cont.)

CG – 1.60

1. Fall E als nächstes Pixel M1 ist nächster Mittelpunkt

Quelle: Uni Magdeburg

2. Fall SE als nächstes Pixel M2 ist nächster Mittelpunkt

2 2 21

1

( ) ( 2) (

( ) ( ) 2 3

1)

2

2 3 E

F M x y r

F M F M x

d d x d

2 2 2

2

2 ) ( 2) (

) ( ) 2 2

3( )

2(

2 5

5

2 SE

F M r

F

x y

F M x yM

d d x y d

2 3

2 2 5E

SE

x

x y

Page 61: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterung von Kreisen (cont.) Initialisierung von d ?

Startpunkt ist (0,r), d.h.:

Nur Vorzeichen von d interessant: Multiplikation mit 4

Erweiterung: Inkrementelle Berechnung von Keine Multiplikationen

CG – 1.61

int x, y, d, delta_SE, delta_E;x = 0; y = r; d = 5–4*r;setPixel(x,y); setPixel(-x,y); ... // Symmetriewhile(y > x) {

if (d >= 0) {delta_SE = 4*(2*(x-y)+5); d+=delta_SE; x++; y--;} // SE

else {delta_E = 4*(2*x+3); d+=delta_E; x++;} // E

setPixel(x,y); setPixel(-x,y); ... // Sym.}

1

2 4(1,

5)d F r r

&E SE

Page 62: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Gegeben: Polygon oder begrenzter Bereich durch Pixelmenge geometrische Beschreibung (Polygone, Kreise, etc.)

Gesucht: Einfärbung des Bereichs mit einer Füllfarbe oder einem Muster bzw. einer Schraffur

Beispiele: Balkendiagramme, Flächen, Körper etc.

CG – 1.62

Page 63: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Füllen von Pixelmengen:Saatkorn-Methoden/seed fill Gegeben:

Gerastertes Polygon als Rand-“Pixelmenge“ Startpixel (Saatkorn, seed), das festlegt wo innen ist

Gesucht: Alle inneren Pixel sind einzufärben Zusammenhang von Gebieten: Welche Pixel sind

benachbart?

8-fach zusammenhängend4-fach zusammenhängend

CG – 1.63

Page 64: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Bemerkungen Füllalgorithmen mit 8 Freiheitsgraden

(Bewegungsrichtungen) können auch 4-fach zusammenhängende Gebiete füllen.

Problem: 4-fach zusammenhängende Gebiete mitgemeinsamen Ecken

Füllalgorithmen mit 4 Freiheitsgraden können keine 8-fach zusammenhängenden Gebiete füllen

CG – 1.64

Page 65: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Man unterscheidet nach der Art der Gebietsdefinition: Boundary-Fill-Algorithmus für randdefinierte Gebiete

Input: Startpunkt (Saatkorn), Farbe der Begrenzungskurve, Füllfarbe oder Muster

Algorithmus:Vom Startpixel ausgehend werden rekursivNachbarpixel umgefärbt, bis Pixel mit der Farbe derBegrenzungskurve (oder bereits umgefärbte Pixel)erreicht werden; dann Abbruch

CG – 1.65

Page 66: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Man unterscheidet nach der Art der Gebietsdefinition: (cont.) Flood/Interior-Fill-Algorithmus für inhaltsdefinierte

Gebiete Input:

Startpunkt (Saatkorn), Farbe der umzufärbenden Pixel, Füllfarbe oder Muster

Algorithmus:Vom Startpixel ausgehend werden rekursivNachbarpixel gleicher Farbe umgefärbt, bis Pixel mit abweichender Farbe erreicht werden;dann Abbruch

CG – 1.66

Page 67: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Einfacher Saatkorn-Algorithmus(4 Bewegungsrichtungen, randdefiniertes Gebiet, FILO/LIFO-Prinzip)

Eventuell werden Pixel mehrfach im Stack abgelegt (und gefärbt)!

Empty(stack);Push(stack, seed-pixel);

while(stack not empty) { pixel = Pop(stack); setColor(pixel, FillColor); for each of the 4-connected pixels pi

{ if(! ((pi == boundary_pixel) || (colorOf(pi) == FillColor))) Push(stack, pi); }}

1

2

3

4

hier z. B.:

CG – 1.67

Page 68: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1

2

3

4

5

6

7

1 2 3 4 5 6 87 9

1

1.6 Rastergrafik – Füllalgorithmen

Beispiel: (die Zahlen geben die Position der Pixel im Stack an)

1

2

3

4

5

6

7

1 2 3 4 5 6 87 9

1,19

2,15,17

3,14,15

4

67

5,7,15

13,15

12,161212

11 11,13

10 110,14

8,9,159

9 8

16

6,21

4,20

17

16,18,25

17,24

25

19,23

20,22

21 21,24

22,24

23,24

24

CG – 1.68

Page 69: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1

2

3

4

5

6

7

1 2 3 4 5 6 87 9

1

1.6 Rastergrafik – Füllalgorithmen

Beispiel: Gebiet mit Loch

1

2

3

4

5

6

7

1 2 3 4 5 6 87 9

1

158,15

3

3,94,99

5,9 4

6,9 6

77,9

9 8

2,9

15

1,10

9

10

9,11

12

13

14 14

13,14

12,14

10,14

CG – 1.69

Page 70: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Scan-Line-Methode Auch Rasterzeilen-Methode oder Scan Conversion

genannt Arbeitet zeilenweise von oben nach unten Ein Pixel der aktuellen Zeile (Scan Line) wird nur

dann gezeichnet, wenn es innerhalb des Polygons liegt

// einfachster Ansatz für Rechtecke:for(y=ymin ; y<=ymax ; y++) // Zeile (row)

for(x=xmin ; x<=xmax ; x++) // Spalte (column)

if(Inside(polygon, x, y)

SetPixel(x,y);

CG – 1.70

Für geometrisch als auch für pixelweise definierte Gebiete

Sehr langsam

Page 71: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Verbesserung durch Ausnutzung von Kohärenz(Zusammenhängen) Verfahren basiert auf dem Prinzip der

Zeilenkohärenz: Benachbarte Pixel auf einer Zeile besitzen höchstwahrscheinlich die gleichen Intensitätswerte.

Pixelcharakteristik (Intensität) ändert sich nur dort, wo ein Schnittpunkt einer Polygonkante mit einer Scan Line vorliegt, d.h. der Bereich zwischen zwei Schnittpunkten gehört zum Polygon oder nicht.

CG – 1.71

Page 72: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Beispiel:

CG – 1.72

Scan Line y=2: Schnitt mit Polygon für x { 1, 8 }∈ Scan Line y=4: Schnitt mit Polygon für x { 1, 4, 6, 8 }∈

P1 P2

P3

P4

P5

0 2 4 6 8

2

4

6

8

Scan Line y=2

Scan Line y=4

Page 73: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Beispiel:

CG – 1.73

Scan Line y=2:Unterteilung der Scan Line in 3 Bereiche:

x < 1 : außerhalb des Polygons

1 ≤ x ≤ 8 : innerhalb des Polygons

x > 8 : außerhalb des Polygons

P1 P2

P3

P4

P5

0 2 4 6 8

2

4

6

8

Page 74: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Beispiel:

CG – 1.74

Scan Line y=4:Unterteilung der Scan Line in 5 Bereiche:

x < 1 : außerhalb des Polygons

1 ≤ x ≤ 4 : innerhalb des Polygons

4 < x < 6 : außerhalb des Polygons

6 ≤ x ≤ 8 : innerhalb des Polygons

x > 8 : außerhalb des Polygons

P1 P2

P3

P4

P5

0 2 4 6 8

2

4

6

8

Page 75: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Wahl der Scan Lines:

CG – 1.75

Scan Lines bei y=n mit ganzzahligem n Pixelaktivierung: linke Pixelseite im

Intervall Problem: ggf. zu viele Pixel aktiviert

Lösung: Scan Lines durch Pixelmitte Pixelaktivierung: Pixelmitte „liegt rechts“

vom Schnittpunkt der Scanline mit dem Polygon

1 2 3 4 5 6

1

2

3

4

5

0

1 2 3 4 5 6

1

2

3

4

5

0

3.5

2.5

1.5

Page 76: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Einfacher Kanten-Listen-Algorithmus (ordered edge list algorithm) Funktionsweise:

a) Preprocessingb) Scan Conversion

Teil a): Preprocessing: Ermittle (z.B. mit Bresenham-Algorithmus) für jede

Polygonkante die Schnittpunkte mit den Scan Linesin der Pixelmitte.

Ignoriere dabei horizontale Kanten. Speichere jeden Schnittpunkt (x, y+½) in einer Liste. Sortiere die Liste dann von oben nach unten

und von links nach rechts.

da Scan Lines durchPixelmitte gehen!

CG – 1.76

Page 77: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Probleme bei Singularitäten!(Scan Line schneidet das Polygon in einer Ecke)

Behandlung durch Fallunterscheidung: Ist die Ecke lokales Extremum, so zählt der Schnitt

zweifach. Ist die Ecke kein lokales Extremum, so zählt der Schnitt

einfach. Lokales Extremum:

y-Werte der Endpunkte der in dieser Ecke beginnenden Polygonseiten sind beide größer oder beide kleiner alsder y-Wert der Schnittecke

CG – 1.77

Page 78: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Teil b): Scan Conversion: Betrachte jeweils zwei direkt aufeinanderfolgende

Schnittpunkte (x1, y1) und (x2, y2) der Liste, d.h. Listenelemente 1 und 2, Listenelemente 3 und 4, usw.

Aufgrund des Preprocessings gilt:

y = y1 = y2 und x1 ≤ x2

Zeichne alle Pixel auf der Scan Line y, für die gilt:x1 ≤ x+½ ≤ x2 mit ganzzahligem x

CG – 1.78

Page 79: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Füllalgorithmen

Beispiel:a) Preprocessing:

(1, 6.5), (1.5, 6.5)

(1, 5.5), (2.5, 5.5), (7.5, 5.5), (8, 5.5)

(1, 4.5), (3.5, 4.5), (6.5, 4.5), (8, 4.5)

(1, 3.5), (4.5, 3.5), (5.5, 3.5), (8, 3.5)

(1, 2.5), (8, 2.5)

(1, 1.5), (8, 1.5)

./.

./.

Scan Lines bei y+½

CG – 1.79

y=1

y=0

y=7

P1 P2

P3

P4

P5

0 2 4 6 8

2

4

6

8

Page 80: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Füllalgorithmen

Beispiel:b) Scan Conversion: Achtung:

Dies sind nun die Pixelkoordinaten!

Denn bei y = 6 gilt:

1 ≤ x+½ ≤ 1.5 x = 1⇒

(1, 6)

./.

P1 P2

P3

P4

P5

CG – 1.80

0 2 4 6 8

2

4

6

8

Page 81: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Füllalgorithmen

Beispiel:b) Scan Conversion:

(1, 6)

(1, 5), (2, 5), (7, 5)

./.

Achtung:Dies sind nun die Pixelkoordinaten!

P1 P2

P3

P4

P5

Denn bei y = 5 gilt:

1 ≤ x+½ ≤ 2.5 x {1,2}⇒ ∈

7.5 ≤ x+½ ≤ 8 x = 7 ⇒

CG – 1.81

0 2 4 6 8

2

4

6

8

Page 82: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Füllalgorithmen

Beispiel:b) Scan Conversion:

(1, 2), (2, 2), …, (7, 2)

(1, 1), (2, 1), …, (7, 1)

(1, 6)

(1, 5), (2, 5), (7, 5)

(1, 4), (2, 4), (3, 4), (6, 4), (7, 4)

(1, 3), (2, 3), …, (7, 3)

./.

./.

Achtung:Dies sind nun die Pixelkoordinaten!

P1 P2

P3

P4

P5

CG – 1.82

0 2 4 6 8

2

4

6

8

Page 83: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik – Füllalgorithmen

Füllen mit Mustern Muster als Bitmap (Textur) Keine einheitliche Farbe, sondern Zuordnung der

Pixel auf Pixel der Textur Abhängig von der Verankerung der Textur, d.h. Lage

der Textur bzgl. dem Polygon: Verankerung in linken unteren Polygonecke Verankerung auf dem Hintergrund

Quelle: Uni Magdeburg

CG – 1.83

Page 84: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing Aliasing:

Allgemein versteht man unter Aliasing-Effekten die fehlerhafte Rekonstruktion eines (kontinuierlichen) Ausgangssignals durch eine Abtastung mit zu geringer Frequenz.→ Nyquist-Theorem

Hintergrund:Im Frequenzbereich bandbegrenzte Signale müssen mit mehr als der doppelten Grenzfrequenz abgetastet

werden, um eine exakte Rekonstruktion zu ermöglichen.

CG – 1.84

Page 85: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Phänomen:

Die hochfrequenten (unterabgetasteten) Frequenzen verschwinden nicht einfach, sie erscheinen als neue (falsche!) Frequenzen mit niedrigerer Frequenz.

Beispiel:räumliches Aliasing(spatial aliasing)

CG – 1.85

Page 86: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Phänomen: (cont.)

Pixels are sampled ata rate 2 times thedetail frequency

Pixels are sampled ata rate less thedetail frequency

CG – 1.86

Page 87: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Aliasing-Effekte in der Computergrafik:

Textur-Artefakte Treppeneffekte beim Rastern von Kurven,

jagged edges Verschwinden von Objekten, die kleiner als ein Pixel

sind Verschwinden von langen, dünnen Objekten Detailverlust bei komplexen Bildern „Aufblinken“ kleiner Objekte bei Bewegungen /

Animationen Bewegungsirritationen bei Animationen

(zeitliches Aliasing)

CG – 1.87

Page 88: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Aliasing in der Computergrafik – Gruppierungen:

Visuelle Effekte, die auf „echtes“ Aliasing zurückzuführen sindBeispiel: Schachbrettmuster

Visuelle Artefakte, die auf Rasterkonvertierungseffekte zurückgehenBeispiel: Treppeneffekte bei schrägen Linien

Zusätzlich: Unterscheidung zwischen örtlichem (spatial)und zeitlichem (temporal) AliasingBeispiel: scheinbar rückwärts drehende Wagenräder in Westernfilmen

CG – 1.88

Page 89: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Anti-Aliasing im Umfeld der Computergraphik:

Alle Methoden (z. B. Oversampling, Filterung) haben das Ziel, Aliasing-Effekten entgegenzuwirken

Ein echtes „Beseitigen“ ist oft (schon theoretisch) nicht möglich:Falls Signale nicht bandbegrenzt sind, hilft zwar höhere Abtastfrequenz (Oversampling), beseitigt aber Probleme nicht!

Bei Effekten, die auf Rasterkonvertierung zurückzuführen sind, spricht man bei Anti-Aliasing-Verfahren auch von „Verfahren zur Bildkantenglättung“.

CG – 1.89

Page 90: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Beispiel: Textur-Artefakte, unendliches

Schachbrettmuster

visuelle Artefakte, wenn Periodizität in der Textur Größenordnung der Pixel erreicht

zweifaches Oversampling (doppelte Frequenz)verringert Artefakte

CG – 1.90

Page 91: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Beispiel: Treppeneffekte, jagged edges, jaggies

Treppeneffekte, da das Zeichnen von Punkten nur an Rasterpositionen möglich ist

geglättete Linie durch Benutzung mehrerer Intensitäten bei Nachbarpixel

CG – 1.91

Bildquelle: http://www.photography.com

Page 92: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.)

CG – 1.92

Page 93: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Rasterkonvertierungseffekte und Aliasing (cont.) Beispiel: Aliasing bei Polygonen

CG – 1.93

Page 94: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Anti-Aliasing Überabtastung, Oversampling, Supersampling:

Einfachstes globales (d. h. das gesamte Bild betreffende) Anti-Aliasing-Verfahren

Jedes Pixel wird mit einer höheren Auflösung berechnet, als es schließlich dargestellt wird

Der resultierende Grauwert (Farbwert) ist der gewichteten Durchschnitt aller beteiligten Subpixelwerte

Zugrundeliegende Theorie: digitale Filter Übliche Filterkerne (Crow, 1981):

Rechteck-/Box-Filter, Dreieck-/Barlett-Filter, Gaußfilter

CG – 1.94

Page 95: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Anti-Aliasing (cont.) Überabtastung, Oversampling, Supersampling:

(cont.)

1 2 12 4 21 2 1

3 x 3 („2x-AA“)1 2 3 2 12 4 6 4 23 6 9 6 32 4 6 4 21 2 3 2 1

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

5 x 5 („4x-AA“) 7 x 7 („6x-AA“)

Pixel

Subpixel

Abtastpunkt

1 1

11

2 2

2

2

4

1

1

11 1

2

2

2

2

2 2

2

2

4

4 4

CG – 1.95

Links: 2-Fach-Anti-Aliasing auf 4 Pixeln Bild wird mit doppelter Auflösung gerechnet

→ aus einem Pixel werden vier Mittelwertbildung über Abtastpunkte

mit Gewichtung

Page 96: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Anti-Aliasing (cont.) Bei Linien und spitzen Dreiecken (dünnen

Polygonen) kann es trotz Supersampling zu überraschenden Effekten kommen!

Linie verschwindet stellenweise, da keine Subpixel getroffen werden!

CG – 1.96

Page 97: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Anti-Aliasing (cont.) Abhilfe: (korrekte) Berechnung der überdeckten

Fläche im Pixel! Praxis: exakte analytische Berechnung

ausgeschlossen! → Näherungsverfahren

CG – 1.97

Page 98: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Anti-Aliasing (cont.) Bemerkung: Stochastische Methoden

Stochastisches Sampling:Oversampling mittels Monte-Carlo-Methoden

Intensitäten an zufälligen Punkten im Pixel ermittelt und Ergebnis gemittelt

Einsatz von Monte-Carlo-Methoden bei Berechnung der vom Polygon im Pixel überdeckten Fläche

Stochastische Methoden erhöhen zwar Effizienz, neigen aber zum Flimmern von Objekten in Animationen!

CG – 1.98

Page 99: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Anti-Aliasing (cont.) – Beispiel

CG – 1.99

Page 100: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Temporales Aliasing Tritt auf, falls sich einige Teile einer Animation

relativ zur Bildwiederholfrequenz zu schnell verändern

Auch hier gilt das Abtasttheorem: Vermeidung durch (zeitliche) Abtastung mit mehr als der doppelten Detailfrequenz der Bewegung

Klassisches Beispiel: Wagenräder in Wildwestfilmen Wahrnehmung der Bewegung über bewegte Speichen Je nach Abtastung der Bewegung, können die Räder

stillstehen, (langsam/schnell) rückwärts oder vorwärts drehen

CG – 1.100

Page 101: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Temporales Aliasing (cont.) Beispiel: Rad mit 8 Speichen

„Wiederholfrequenz“ 1/8 Umdrehung Abtastfrequenz höher 1/16 Umdrehung

Besonders störend:variierende Radgeschwindigkeit im Bereich1/16 Umdrehung

CG – 1.101

Page 102: Computergrafik - Inhalt §0Historie, Überblick, Beispiele §1Begriffe und Grundlagen §2Objekttransformationen §3Objektrepräsentation und -Modellierung §4Sichttransformationen.

1.6 Rastergrafik

Temporales Aliasing (cont.)

CG – 1.102