Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Also ich hab noch mal versucht das ganze von Grund auf neu zu schreiben.
Aber trotzdem komme ich wieder zum gleichem Ergebnis: für negative Lichtrichtungen oder Positionen wird nicht "geshaded"
Also, das FBO setzte ich mit diffuse, position und normal Textur so auf (für alle drei gleich):
Vielleicht sieht ja jemand den Fehler, aber es kann entweder nur daran liegen dass die Daten falsch in den Shader kommen, was ich auf Grund der Texturen im FBO schon mal ausschließe, oder das Skalarprodukt stimmt nicht. Was ich aber auch nicht verstehen würde...
G-Buffer in OpenGL "akzeptieren" keine negativen Farben mit GL_RGB als internes Format.
Daher verwende ich jetzt GL_RGB8_SNORM, dies erlaubt auch negative Werte (dadurch sehen die Texturen natürlich falsch aus).
Alternativ kann man die Daten auch selbst erst in den Bereich von 0;1 bringen und danach wieder zurückrechnen, also bei erstellen *0.5+0.5 und beim zurückrechnen *2.0-1.0.
Jetzt bleibt noch die Frage zum Umgang mit zusätzlichen Daten.
Wie machen es die Großen? Speichern diese z.B. Materialinformationen in einer zusätzlichen Textur?