Registriert: Sa Mai 16, 2015 17:25 Beiträge: 22
Programmiersprache: Pascal
Hallo, ich versuche mich gerade mit Shadern anzufreunden (was mehr oder weniger erfolgreich ist/war).
Es war immerhin soweit erfolgreich, dass ich die Shader erfolgreich laden und benutzen kann, jedoch rendert mein Programm nun den durchsichtigen Bereich einer Textur mit Alphakanal. Die "Blätter" sind triangulierte Quads mit einer darauf gebundenen Textur.
Man sollte auf dem Bild erkennen, dass z.B bei dem Quad rechts ab einer gewissen Stelle das komplette Quad gerendert wird - anstatt eben nur den sichtbaren Teil.
Warum ist das so? Kann es evt sein, dass dies an dem Shader an sich liegt? Ohne Shader funktioniert alles ohne Probleme. Den Shader habe ich von hier: Shader
Im Grunde steht da nichts anderes als gl_FragColor = licht * texturWert + specular Wenn der Alphawert in der Textur 0 ist, willst du ja, dass er es auch im Endergebnis ist. Das ist bei obiger Formel offensichtlich nicht immer der Fall, weil der Alphawert von ISpecular immer noch draufaddiert wird. Du hast also zwei Möglichkeiten:
1.) Du setzt den Alphawert (die w-Komponente) von ISpecular auf 0:
Das Ergebnis der beiden Möglichkeiten ist nicht das selbe! Entscheide dich für das, was deiner Meinung nach besser aussieht.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Eigentlich gibt es sowieso keinen Grund, den Alphakanal in den Lichtberechnungen die ganze Zeit mitzuschleppen. Zu Fixed-Function-Zeiten hatte man halt Recheneinheiten, die sowieso mit jedem Takt 4 floats verarbeitet haben. Daher stammt wohl dieses Beleuchtungsmodell, das hier genutzt wird.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Mitglieder in diesem Forum: 0 Mitglieder und 11 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.