2012-03-31 11 views
5

¿Qué sucede si vincula (diferentes texturas) a GL_TEXTURE_2D y GL_TEXTURE_CUBE_MAP en la misma unidad de imagen de textura?OpenGL ES 2.x: ¿enlazar ambos `GL_TEXTURE_2D` y` GL_TEXTURE_CUBE_MAP` en la misma unidad de imagen de textura?

Por ejemplo, supongamos que ato una textura al objetivo GL_TEXTURE0 de GL_TEXTURE_2D y otra textura al mismo objetivo de la unidad de textura GL_TEXTURE_CUBE_MAP. ¿Puedo entonces tener dos variables uniformes, una a sampler2D y la otra a samplerCube y configurar ambas a 0 (para referirse a GL_TEXTURE0)?

Sospecho que la respuesta es "no" (o que el resultado es indefinido) pero no he encontrado nada en la especificación que prohíba específicamente el uso de múltiples objetivos de textura en la misma unidad de imagen de textura.

Respuesta

7

No he encontrado nada que describa si puedes unir una textura 2D y una textura de mapa en cubo en la misma unidad de textura, pero (o así que) Supongo que esto es perfectamente posible. Tiene sentido permitirlo, ya que todas las funciones de modificación de texturas requieren que especifiques el objetivo de textura para operar de todos modos.

Pero la especificación OpenGL ES 2 no permite explícitamente a utilizar ambos al mismo tiempo en un shader, como el capítulo 2.10 dice:

No se le permite tener variables de diferentes tipos de toma de muestras que apuntan a la misma unidad de imagen de textura dentro de un objeto de programa. Esta situación solo se puede detectar en el siguiente comando de representación emitido, y se generará un error INVALID_OPERATION.

Así no se puede utilizar tanto un sampler2D y una samplerCube refiriéndose a la misma unidad de textura para doblar los límites de la unidad de la textura de su implementación.

Cuestiones relacionadas