Lichtmodelle

Ich höre zur Zeit die Vorlesung Computergraphik II, in der nun Shader programmiert werden. Heute habe ich eine beeindruckende Übungsaufgabe gelöst. Letzte Woche hatten wir das Gouraud Shading als Vertex-Shader implementiert. Also für jeden Vertex wird die Farbe berechnet abhängig von der Lichtquelle. Dies bezeichnet man auch als “Per-Vertex-Lighting”.

Nun sollten wir das Modell erweitern. Die Berechnung der Farbe sollte nicht mehr pro Vertex, sondern pro Pixel berechnet werden. Es sollte das Phong Shading implementiert werden. Dies ist natürlich bedeutend aufwändiger. Aber das Ergebnis rechtfertigt den Aufwand:

Links sehen wir das Gouraud-Shading, rechts das Phong-Shading. Wie man erkennt sind die Hightlights auf den Objekten bedeutend genauer im Phong-Shading. Auch die grüne Grundfläche wird im Gouraud-Shading praktisch überhaupt nicht beleuchtet.

Noch eindrucksvoller kann man das Ganze in diesem Vergleich erkennen:

Das Highlight am Rand sieht im Phong-Shading viel natürlicher aus.

Nun diese Aufgabe zeigt, dass man mit relativ wenig Aufwand die Bildqualität doch massiv verbessern kann und dass es sich durchaus lohnt in die Grafik zu investieren.