MartinThoma / KIT-Musterloesungen

Musterlösungen für Klausuraufgaben am KIT
50 stars 30 forks source link

cg/Hauptklausur 2012, Aufgabe 8 #98

Open ghost opened 7 years ago

ghost commented 7 years ago

Die Aufgabe ist:

Vervollständigen Sie die OpenGL-Shading-Language (GLSL) Shader-Programme auf den nächsten Seiten, sodass die nachfolgend deklarierte Funktion computeLighting() für ein Rendering mit Phong Shading eingesetzt wird.

In der Lösung wird allerdings im Vertex-Shader ein Farbwert berechnet und der dann an den Fragment-Shader weitergereicht. Das erscheint mir allerdings falsch zu sein, weil eben beim Phong Shading, anders als beim Gouraud Shading, der Farbwert ja pro Fragment und nicht pro Vortex berechnet werden muss.

Außerdem liegt die Lösung im falschen Ordner, nämlich in dem der Hauptklausur 2012.

EDIT: Lösung liegt im richtigen Ordner, war ein Fehler im Ilias.

childen commented 7 years ago

N und L müssen interpoliert werden (Folie 69 - 07 OpenGL Teil1)

Aber: computeLighting möchte P,N,lightPos, kd, I.(r/g/b) haben.

P und N interpolieren -> P und N in vertex shader berechnen (normalisierung kann man sich sparen) und in out variablen schreiben. Im Fragment-Shader dann normalisieren.

Die uniform Angaben kann man (wenn ich es richtig verstanden habe) direkt in den Fragment-Shader übernehmen, dann stehen die Werte auch zur verfügung. Wie es mit kd aussieht weiß ich nicht genau weil ich nicht zu 100% verstehe welche Datentypen zwischen Vertex-Shader und Fragment-Shader wie interpoliert wird. Vielleicht kennt sich damit jemand besser aus oder hat eine Quelle gefunden wo das gescheit aufgeschrieben ist.