Ich habe eine vorhandene Tiefenstruktur und einige andere Farbtexturen und möchte die darin enthaltenen Informationen verarbeiten, indem ich sie in eine 3D-Textur rendere (basierend auf der in der Tiefenstruktur enthaltenen Tiefe, dh einem Punkt bei (x / y) in der Tiefenstruktur wird in der 3D-Textur auf (x / y / Textur (Tiefe, UV)) gerendert).
Das einfache Ausführen eines manuellen Zeichenaufrufs für jedes Stück der 3D-Textur (über glFramebufferTextureLayer) ist furchtbar langsam, da ich vorher nicht weiß, zu welchem Stück der 3D-Textur ein bestimmtes Texel aus einer der Farbtexturen oder der Tiefenstruktur gehört. Dies bedeutet, dass der gesamte Prozess effektiv ist
for each slice
for each texel in depth texture
process color textures and render to slice
Also muss ich die Tiefenstruktur pro Slice vollständig abtasten und ich muss auch die Verarbeitung (zumindest bis zum Verwerfen;) für alle darin enthaltenen Texel durchlaufen.
Es wäre viel schneller, wenn ich den Prozess neu ordnen könnte
for each texel in depth texture
figure out what slice it should end up in
process color textures and render to slice
Ist das möglich? Wenn das so ist, wie?
Was ich eigentlich versuche: Die Farbtexturen enthalten Beleuchtungsinformationen (aus Sicht der Lichtansicht handelt es sich um eine reflektierende Schattenkarte). Ich möchte diese Informationen in der 3D-Textur sammeln und später zum Beleuchten der Szene verwenden. Insbesondere versuche ich, den Algorithmus für Cryteks Light Propagation Volumes zu implementieren.