Wie kann ich den gleichen "Texturspeicher" an Texturen mit unterschiedlichen Dimensionen binden?Binden Sie den gleichen "Texturspeicher" an Texturen mit unterschiedlichen Dimensionen
Zum Beispiel muss ich ein Array von 2D-Bildern mit einem sampler2DArray
in einem Shader und einem sampler3D
in einem anderen Shader zugreifen, ohne die Daten auf dem Grafikkartenspeicher zweimal laden und speichern zu müssen.
Ich möchte so etwas wie dies zu tun:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
glTexImage3D(GL_TEXTURE_2D_ARRAY, ...); // allocate & store pixel data
und dann:
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_3D, tex); // "reuse" the texture storage with a
// different dimensionality in another
// texture unit
Aber die letzte Zeile ist offensichtlich ungültig.
Gibt es irgendeine Methode, so etwas zu tun?