Diana und Dominik - Uni Koblenz-Landau cg/ws1213/cg1/uebung/... tec&fea=BeautyPixelDeep Diana...

Click here to load reader

download Diana und Dominik - Uni Koblenz-Landau cg/ws1213/cg1/uebung/... tec&fea=BeautyPixelDeep Diana und Dominik

of 37

  • date post

    05-Mar-2021
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Diana und Dominik - Uni Koblenz-Landau cg/ws1213/cg1/uebung/... tec&fea=BeautyPixelDeep Diana...

  • Wiederholung - Beleuchtung Texturen

    Übungsstunde 8 zu Computergrafik 1

    Diana und Dominik

    Institut für Computervisualistik Universität Koblenz

    14. und 15. Januar 2013

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Inhaltsverzeichnis

    1 Wiederholung - Beleuchtung Gouraud-Shading Phong-Shading Flat-Shading Vergleich

    2 Texturen Texturen - Idee Texturen in OpenGL Texturfilterung MipMaps

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Gouraud-Shading

    Gouraud-Shading

    Interpolieren der Farben

    Farben der Eckpunkte werden durch entsprechenden Normalen an den Eckpunkten berechnet.

    Fehlende Farbwerte werden durch bi-lineare Interpolation bei der Scankonvertierung bestimmt.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Gouraud-Shading

    Gouraud-Shading

    Interpolieren der Farben

    Eckpunktnormale und Lichtvektor bestimmen Beleuchtung

    Nur die Eckpunkte werden wirklich korrekt beleuchtet, der Rest nur interpoliert

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Phong-Shading

    Phong-Shading

    Interpolieren der Normalen

    Die Normalen der Eckpunkte werden komponentenweise interpoliert.

    Jedes Pixel wird mit seiner Normale beleuchtet.

    Nicht Standard OpenGL.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Phong-Shading

    Phong-Shading

    Interpolieren der Normalen

    Durch Interpolation der Normalen wird jedes Fragment einzeln beleuchtet.

    Korrekterer Eindruck (weniger flächigerer Eindruck)

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Flat-Shading

    Flat-Shading

    Interpolieren der Normalen

    Nur Flächennormale wird benutzt

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Vergleich

    Abbildung: Von links nach rechts: Flat-Shading, Gouraud-Shading, Phong-Shading

    Quelle: http://www.ntsc-uk.com/feature.php?featuretype= tec&fea=BeautyPixelDeep

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

    http://www.ntsc-uk.com/feature.php?featuretype=tec&fea=BeautyPixelDeep http://www.ntsc-uk.com/feature.php?featuretype=tec&fea=BeautyPixelDeep

  • Wiederholung - Beleuchtung Texturen

    Vergleich

    Abbildung: Von links nach rechts: Flat-Shading, Gouraud-Shading, Phong-Shading

    Quelle: http://www.hlc-games.de/forum/viewtopic.php?f=10&t=56

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

    http://www.hlc-games.de/forum/viewtopic.php?f=10&t=56

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Texturen in OpenGL

    Idee

    Eine Textur ist ein Bild, welches die Beschaffenheit von Oberflächen beschreiben kann.

    Eine Textur soll während der Rasterisierung auf ein Polygon gemappt werden.

    Vorteile: Höherer Detaillierungsgrad möglich, Vereinfachung der Objekte.

    Möglich in 1D, 2D oder 3D.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Abbildung: Ohne und mit Textur

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Beispiel Ziegelsteinwand

    Ohne Texturen

    Besteht aus: Vielen unterschiedlich farbigen Steinen und Fugen.

    Ohne Texturen müsste jeder Stein und die Fugen aus Polygonen erstellt werden.

    Jedem Stein müsste eine Farbe zugewisen werden.

    Ergebnis: Unnatürlich regelmäßige Wand und hoher Rechenaufwand.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Beispiel Ziegelsteinwand

    Mit Texturen

    Ein einziges Polygon mit den Ausmaßen der Ziegelsteinwand wird erzeugt.

    Das Bild einer Ziegelsteinwand wird als Textur auf das Polygon gemappt.

    Resultat: Natürlicher Eindruck und weniger Rechenaufwand, da nur ein einziges Objekt und eine Textur berechnet werden muss.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Abbildung: Ohne und mit Textur

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Texturkoordinaten

    Texturmapping

    Ein Textur-Element, welches auf ein Pixel gemappt wird nennt man Texel (Texture Element), analog zu Pixel.

    Während der Rasterisierung wird das entsprechende Texel zum Pixel bestimmt.

    Das Textur-Bild wird in einem (s,t)-Koordinatensystem angegeben.

    Für jedes Pixel auf dem Bildschirm wird ein Texture Look-Up durchgeführt, um die Farbe des Pixels zu bestimmen.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Abbildung: Texturkoordinaten

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen - Idee

    Wo in der Pipeline wird texturiert?

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    Textur anlegen

    Schritte

    1 Texturdefinition

    2 Texturkoordinaten Eckpunkten zuordnen

    3 Texturparameter

    4 Textur einschalten

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    Texturdefinition

    Texturen laden

    Eine Textur kann entweder ein Bild sein, oder während der Laufzeit erzeugt werden.

    Mittels glTexImage2D wird die Textur in den Video Memory geladen.

    Für externe Texturen muss der Image-Loder selbst geschrieben werden.

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    glTexImage2D(target , level , components , width ,

    height , border , format , type , data);

    target → Art der Textur, bsp. GL TEXTURE 2D level → Sofern kein MipMap angewandt wird, 0 components → Anzahl der Komponenten der Textur, bsp. GL RGB oder 3

    width, height → Breite und Höhe der Textur border → Breite des Randes format → Format der Pixeldaten, bsp. GL RGB type → Typ der Pixeldaten, bsp. GL UNSIGNED BYTE data → Adresse der Daten im Hauptspeicher

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    glTexImage2D(target , level , components , width ,

    height , border , format , type , data);

    //Beispielaufruf

    glTexImage2D (GL_TEXTURE_2D , 0, GL_RGB ,

    imageWidth , imageHeight , 0, GL_RGB ,

    GL_UNSIGNED_BYTE , imageData);

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    Textur

    Schritte

    1 Texturdefinition

    2 Texturkoordinaten Eckpunkten zuordnen

    3 Texturparameter

    4 Textur einschalten

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    Texturkoordinaten Eckpunkten zuordnen

    Mittels glTexCoord muss jedem Eckpunkt eine Texturkoordinate zugeordnet werden

    glTexCoord2f (0.2, 0.8); glVertex3f(A);

    glTexCoord2f (0.4, 0.2); glVertex3f(B);

    glTexCoord2f (0.8, 0.4); glVertex3f(C);

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    Textur

    Schritte

    1 Texturdefinition

    2 Texturkoordinaten Eckpunkten zuordnen

    3 Texturparameter

    4 Textur einschalten

    Diana und Dominik Arbeitsgruppe Computergrafik

    Übungsstunde 8 zu Computergrafik 1

  • Wiederholung - Beleuchtung Texturen

    Texturen in OpenGL

    Texturparameter

    Texturen spezifizieren

    glTexParameteri(GL TEXTURE 2D, name, value)

    Den mi