Ich habe an einem verzögerten Abziehbildsystem gearbeitet. Bisher habe ich den Projektionsteil fertiggestellt, was bedeutet, dass ich auf etwas in der Szene klicken kann und ein Abziehbild ordnungsgemäß auf die Oberfläche des Objekts projiziert wird.
Es gibt noch ein paar andere Dinge, die ich diesem System hinzufügen möchte: normales Abschneiden und normale zugeordnete Abziehbilder. Normales Abschneiden ist, wenn ich Fragmente verwerfe, die über einen scharfen Winkel gespannt sind. Gesehen hier . Eine Möglichkeit, dies zu lösen, besteht darin, Fragmente zu verwerfen, die einen großen Unterschied zwischen der Normalen im G-Puffer und der Normalen des Abziehbilds aufweisen. Dies würde das Lesen der normalen Textur des G-Puffers erfordern.
Um eine normale Abbildung des Abziehbilds durchzuführen, muss ich die Normalen des Abziehbilds (von einer normalen Zuordnung) mit der Normalen des G-Puffers mischen. Dies erfordert das Schreiben in die normale Textur des G-Puffers.
Ich hoffe, es ist klar, dass ich zur Unterstützung dieser beiden Funktionen im selben Shader-Durchgang die normale Textur lesen und schreiben muss. Leider ist dies ein undefiniertes Verhalten, daher frage ich mich, ob es eine andere Möglichkeit gibt, diese Funktionen zu implementieren.