Registriert: Fr Jan 04, 2008 21:29 Beiträge: 419 Wohnort: Lübeck
Hi, ich habe mich gerade gefreut, dass ich einen Phongshader in glsl geschrieben habe und der auch soweit richtig gut aussieht, allerdings will ich nicht nur diffuse und specular texturabhängig haben, sondern auch die normalen, also bump mapping (oder normal mapping, kA was richtiger ist).
Ich habe dazu diverse papers im Netz durchgelesen und verschieden Varianten ausprobiert aus dem phong shader einen bump shader zu machen. Im Prinzip habe ich den light und den View vector mit der TBN matrix an den Normalspace angepasst und berechne ansonsten alles so wie vorher. Die Texturen und Daten werden komplett richtig übergeben, aber irgendwie scheint in dem bumpshader ein Problem mit dem Beleuchtungswinkel aufzutauchen. ebenfalls verändert sich as verhalten der Specular auf der Oberfläche erheblich.
Wenn jemand eine Ahnung hat, was ich falschgemacht habe, oder so, dann darf er mich das ruhig wissen lassen.
Beim dot3 bumpmapping gibt es zwei Varianten: Eine arbeitet im texturspace das war füher nötig, da Register combiner keine matrixmultiplikation durchführen konnten, Der nachteil ist, das jede Lichtquelle ebenfalls in den texturspace transformiert werden muss.
Heute kann man es sich ohne Probleme erlauben. Den Normalvektor aus der normalmap in den modelviewspace zu projezieren. Über gib einfach die TBN matrix an den Fragmentshader. Da dieser Code immer wieder gebraucht wird hab ich ihn hier als Tutorial abgelegt:
http://lumina.sourceforge.net/?id=23
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Moment, fehlt da nicht noch ein * 2.0?
Wenn du werte von 0 bis 1 hast und diese -0.5 nimmst, hast du werte von -0.5 bis 0.5. Da müsstest du doch noch mal zwei nehmen, damit du werte von -1.0 bis 1.0 hast, oder?
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
in dem Fall nicht, da in der nächten Zeile. der normalmapvektor aus dem texturspace ind den Modelviewspace rotiert wird und dann anschließend normalisiert wird. Noch besser wäre die variante ein signed texture format zu verweden...
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.