Thomas Jung Geschichte der Computergrafik Zeichenalgorithmen Bildformate Grafikstandards - HDRI 26.03.2019

Die Seite wird erstellt Florian Klaus
 
WEITER LESEN
Thomas Jung Geschichte der Computergrafik Zeichenalgorithmen Bildformate Grafikstandards - HDRI 26.03.2019
26.03.2019

                 Thomas Jung

   Geschichte der Computergrafik
   Zeichenalgorithmen
   Bildformate
   Grafikstandards
   HDRI

                                            1
Thomas Jung Geschichte der Computergrafik Zeichenalgorithmen Bildformate Grafikstandards - HDRI 26.03.2019
26.03.2019

   Einschätzung der heute gängigen Technologie
   Verstehen der Abläufe im Rechner
   Einsatz von Bildformaten
   Überblick zum Thema Computergrafik

   Vektorgrafik
       beschreibt Grafikprimitive (Linie, Kreis, etc.)
       verlustfrei skalierbar
       Speicherbedarf steigt mit Detailreichtum
       Einfache Konvertierung in Rastergrafik durch
        Rasterung

   Rastergrafik
       beschreibt Bildpunkte
       entspricht Möglichkeiten aktueller Hardware
       Speicherbedarf steigt mit Auflösung
       Fotografische Aufnahme möglich
       Schwierige Konvertierung in Vektorgrafik durch
        Vektorisierung

                                                          (Bildquelle: Wikipedia)

                                                                                            2
Thomas Jung Geschichte der Computergrafik Zeichenalgorithmen Bildformate Grafikstandards - HDRI 26.03.2019
26.03.2019

   Kathodenstrahl wird auf Bildschirm platziert
       Zahl der Primitive pro Bild begrenzt
   Erste graphische Anzeige 1949
       Springender Ball, Whirlwind Computer, MIT
   Erste interaktive Grafik 1958 (?)
     Oszilloskop mit regelbarem Abflugwinkel, Auslösung
      des Flugs per Knopf,
     Willy Higginbotham, Brookhaven National Laboratory

   „Erstes Computerspiel“ 1961
       Spacewar, DEC - PDP 1, Steve Russell
   Flugsimulator mit grafischer Ausgabe 1963
       General Electrics
   3D-Vektordisplay 1977
       Spiel „Speed Freak“,                                                  Cinematronics

        http://www.youtube.com/watch?v=6PG2mdU_i8k&feature=related
        http://www.youtube.com/watch?v=_S_-xuBM2es&feature=related

            (Bildquellen: Brookhaven National Laboratory, Wikipedia, u. a.)

       Entstanden in den 1980iger Jahren
            günstige Hardware durch Farbfernsehen

       Bildspeicher zur Zwischenspeicherung
            Ausgelesen von RAMDAC
                                                              (Random Access Memory Digital/Analog Converter)

       Vektordaten werden gerastert
            z. B. Bresenham-Algorithmus für Linien

                                                                                                                        3
26.03.2019

   Pong 1972 noch kein
    Rastergrafiksystem
        Spezielle Elektronik zum
         Zeichnen des Balkens
   Spielautomaten
        Breakout 1976
        Pacman 1980
   Heimcomputer
        C64 1982
          320 x 200 Pixel, 16 Farben
        Commodore Amiga 1985

                                        C64                            Amiga

   1980iger erste
    Grafikkarten
   1995 erster 3D-
    Beschleuniger
    (nVidia)
   2000 integrierte
    GPUs auf der
    Hauptplatine
    (Notebooks)
   Ab ca. 2005                                    ( Bildquelle: www.die-grafikkarte.de )

    zusätzliche
    Funktionen
                                              ATI Radeon HD 5870
                                              (Bildquelle Wikipedia)

                                                                                                    4
26.03.2019

   Falls Speicherzellen
    nicht alle Farben
    repräsentieren
       Beispiel 8bit-Speicher
        ermöglicht 28 = 256
        unterschiedliche Farbwerte
       Mensch kann mehr als 224 Farben unterscheiden
   Spezielle Hardwarekomponente („Look up table“)
       erlaubt es noch, Farben anzupassen
   Feste (Fensterübergreifende) Farbtabelle: Dithering
   Variable Farbtabellen pro Bild: Farbquantisierung
       Bessere Bildqualität, aufwändiger
       Falschfarben in anderen Fenstern
       Unter X-Windows möglich nicht aber unter MS Windows
   Kein Bestandteil von aktuellem OpenGL Grafikkarte
                                                              (Bildquellen: Wikipedia)

   Abbildung auf feste Farbtabelle
   Übertragung der Fehler auf
    Nachbarpixel

                                                          (Bildquellen: Wikipedia)

                                                                                                 5
26.03.2019

   Linien und Polygone werden abgetastet
   Unendliche Zahl von Punkten auf endliches Raster
       Unterabtastung erzeugt Aliasing
         Antialiasing – Vorlesung

   Polylinien durch Bresenham-Algorithmus
   Polygone durch Scanline-Algorithmus
     Vorlesung zum Thema Beleuchtung

   Ursprünglich 1962 von Bresenham
       für Plotter                                                                                  Jack
                                                                                                     Bresenham
       Heute Algorithmus-Varianten anderer Autoren                                                  (IBM)
   Rasterung mit einfachen Operationen
       Addition, Subtraktion, Multiplikation mit 2 (Shift)
   Bestandteil auch aktueller Grafikchips
   Erweiterbar auf Rasterung von Kreisbögen
   Antialiasing in späterer Vorlesung

                              (Bildquelle: http://wscg.zcu.cz/wscg2003/Photos_2003/Bresenham.jpg )

                                                                                                                         6
26.03.2019

   Schnelle Richtung
       Hier x-Richtung weil
        Steigung =
        (y2 – y1) / (x2 – x1) < 1

   Jeweils Schritt in
    schneller Richtung
       Fehler initialisieren
       pro Schritt Steigung
        subtrahieren
       Schritt in langsamer
        Richtung bei Fehler < 0
                                                             ( Bildquelle: Wikipedia )

   Entweder 8 Spezialfälle:
    oder:
dx = xend - xstart; dy = yend - ystart;
if (dx < 0) { incx = -1; dx = -dx; } else incx = (dx > 0);
if (dy < 0) { incy = -1; dy = -dy; } else incy = (dy > 0);
dist = (dx > dy) ? dx : dy;
x = xstart; y = ystart; xerr = dx; yerr = dy;
for (t = 0; t < dist; t++)
{
     image[y][x] = col;
     xerr += dx; yerr += dy;
     if (xerr > dist) { xerr -= dist; x += incx; }
     if (yerr > dist) { yerr -= dist; y += incy; }
}
image[yend][xend] = col;

                                                                                                 7
26.03.2019

   Y ist schnelle Richtung beim                         1. Oktant
   Entweder x wird dekrementiert                      oder bleibt
    konstant
   Vergleich des quadrierten Abstands
    beider Pixel zum Kreisbogen
       Variante mit kleinerem Abstand wählen
          Abstand2 = x2 + y2 – r2
       Keine Wurzelberechnung erforderlich
       Quadrierung kann durch Iteration vermieden werden
          (y + 1)2 = y2 + 2 y + 1
   Spiegelung der anderen 7 Oktanten

                                                            ( Bildquelle: Wikipedia )

   Vektorgrafiken
       Flash-SWF, SVG, …
       inclusive Text: PDF, …
       aber auch DXF (CAD-Austausch)
       oder 3D-Formate: VRML, … (3D-Modellierer)
       teilweise kompakter zu speichern
   Rastergrafiken
       Bildformate  Kompression
       3D-Voxeldaten … Medizin

                                                                                                8
26.03.2019

   Speicherbedarf eines unkomprimierten Bilds:
       Horizont. Auflösung * Vertikale Aufl. * Bildtiefe + Header
   Metainformation im Header möglich (EXIF-Spez.)
       Kamera, Datum, Aufnahmeparameter, Vorschaubild, GPS, …
   Kompression soll Speicherbedarf reduzieren
       Verlustfreie Kompression
         Nutzt Kohärenzen im Bild (z. B. gleichfarbige Bildbereiche)
         Z.B. GIF, … (LZW-Kompression)
       Verlustbehaftete Kompression
         Nutzt zusätzlich begrenzte menschliche Wahrnehmung
         „Verlust“ soll nicht erkennbar sein
         Z. B. JPEG, …

   Einfache Kompression auch in Grafikkarten (Textur), um
    Bandbreitenbedarf zu verringern
     glCompressedTexImage2D

   Komprimiert einfarbige Bereiche

    3    4     5     1                            z. B. Windows-Bitmap
                                                  Dateiendung „.RLE“
   Kann Dateien aufblähen

    1    1     1     1    1     1     1     1     1     1     1     1     1

   Lösung: Kontrollzeichen erst bei Länge > 2
                                                ( Erkennen von
                                                Kontrollzeichen erforderlich )
         4           5

                                                                                         9
26.03.2019

      256 Farben mit Farbtabelle            Interlacing
      Transparente Farbe (Kein Alpha-Kanal)
      Interlacing, für Web-Vorschau
          Jede 8., jede 4., jede 2. Zeile und dann Rest
      Ab 1989 Speicherung von Bildfolgen
      Unterstützt LZW-Kompression
      Nachfolger PNG mit Echtfarbenmodus,
       Alphakanal und zusätzlicher Huffmann-
       Codierung

                                                                                               (Bildquelle: Wikipedia)

                                                                                    Abraham
Tabelle = [ [÷,A] [÷,B] [÷,C] [÷,D] ];                                              Lempel
                                                                                                        Jacob Ziv

                                                     Zeichen-          Gefunden                  Neuer
Wort = ÷                                             kette             und aus-                  Eintrag
                                                                       gegeben
Solange Zeichen vorhanden                            ABCABDBC          A                         5: A B
    Zeichen = liesZeichen()
                                                     BCABDBC           B                         6: B C
      Wenn [Wort,Zeichen] in Tabelle
        dann Wort = [Wort,Zeichen]                   CABDBC            C                         7: C A
      Sonst
        Tabelle += [Wort,Zeichen]                    ABDBC             5                         8: 5 D
        Ausgabe Wort
        Wort = Zeichen // Eintrag                    DBC               D                         9: D B

Ggf. Rest ausgeben                                   BC                6                         -

                                         Ausgabe also: A B C 5 D 6 = A B C AB D BC

   Beim Dekodieren wird Tabelle in gleicher Weise aufgebaut (wird nicht übertragen)
                                                             (Bildquelle: www.itec.uka.de/seminare/redundanz/vortrag05/ )

                                                                                                                                   10
26.03.2019

    Bilder bestehen nicht mehr aus TrueColor-Pixeln
         Zur Zeit vorwiegend proprietäre Formate
    Helligkeit wird später ausgewählt (Tone Mapping)
         oder direkte Darstellung an zukünftigen Bildschirmen
    Erzeugung durch Rendering („CGI“) oder …
    Bilder können heute mit konventionellen Kameras durch
     Kombination von Bildreihen mit unterschiedlichen
     Belichtungen erzeugt werden
         iPhone4 z. B. nimmt Belichtungsreihe auf, iPhone6 sogar Videos
           Tonemapping für HDR-Foto dann z. B. per „Slider“ steuerbar

                                                    ( Bildquelle: http://en.wikipedia.org/wiki/Image:HDR_example_-_exposure.jpeg )

    Abbildung von HDR-Pixelfarben auf LDR-Farben
         Global: jedes Pixel unabhängig von anderen
         Lokal: Erhaltung von regionalen Details

Beispiel:
Windows 10

(für jeden
                      Framebuffer

Farbkanal
gleich)

                                                              HDR-Werte
             (Bildquelle: https://msdn.microsoft.com/en-us/library/windows/desktop/mt742103(v=vs.85).aspx )

                                                                                                                                            11
26.03.2019

LDR

                               HDR

     Fixpunkt-Repräsentation im Framebuffer
      impliziert „Clamping“ auf den Wertebereich 0..1
     Floatingpoint-Framebuffer
         … besitzen variablen Wertebereich
         … werden nicht direkt auf dem Bildschirm angezeigt
         … erfordern bis zu viermal mehr Speicherplatz
     Tone Mapping
         Floatingpoint-FB als Textur eines bildschirmfüllenden
          Rechtecks
         Texturemapping definiert dann das Tone Mapping

                                                                         12
26.03.2019

   Idee: menschliche Helligkeitswahrnehmung
    passt sich kleineren Bildregionen an
   Tone mapping deshalb mit
    lokal unterschiedlichen
    Operatoren
   Aufwändiger
   Anfällig für Artefakte
                                     Halo-Artefakte

z. B. iPhone Xs

      (Bildquelle: © Nevit Dilmen, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=1388147)

   Vektorgrafik vs. Rastergrafik
   Farbtabellen und Dithering
   Rasterung von Linien und Kreisen
   Speicherung von Rasterbildern
   HDRI

                                                                                                                   13
Sie können auch lesen