Tengo un sombreador de vértices en el que realizo una búsqueda de texturas para determinar gl_Position. Estoy usando esto como parte de un sistema de simulación de partículas GPU, donde las posiciones de las partículas se almacenan en una textura.La búsqueda de texturas en el sombreado de vértices se comporta de manera diferente en un simulador de dispositivo iPad vs iPad - OpenGL ES 2.0
Parece que: vec4 textureValue = texture2D(dataTexture, vec2(1.0, 1.0));
se comporta de manera diferente en el simulador que el dispositivo iPad. En el simulador, la búsqueda de textura tiene éxito (el valor en esa ubicación es 0.5, 0.5) y mi partícula aparece allí. Sin embargo, en el iPad en sí, la búsqueda de texturas retorna constantemente 0.0, 0.0.
He intentado ambas texturas del formato GL_FLOAT y GL_UNSIGNED_BYTE.
¿Alguien más ha experimentado esto? La especificación ES de GLSL dice que las búsquedas de texturas se pueden realizar en los sombreadores de vértices y fragmentos, por lo que no veo cuál es el problema.
estoy usando la última GM Beta del SDK de iOS 4.2
Lo que has descubierto debe ser un error o "accidente feliz". En mi iPad (admitidamente 4.2.1), GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS devuelve 0, lo que significa que no se pueden realizar búsquedas de textura en el sombreado de vértices. Tengo curiosidad por saber qué valor obtienes en tu iPad2 por GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS. –
Hola, mi iPad 2 utilizando 4.3.4 también devuelve 0 para GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS (y 8 para GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS y GL_MAX_TEXTURE_IMAGE_UNITS). Supongo que la tarjeta gráfica del iPad 2 lo admite, pero por alguna razón el controlador lo desactiva para que haya un comportamiento uniforme en los distintos dispositivos iOS. No he probado esto en el iPhone o iPad 1 todavía. El simulador iOS iPad 4.3 también informa 0 para GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, pero le permite acceder a las texturas del sombreador de vértices normalmente (sin agregar la búsqueda de textura falsa en el sombreador de fragmentos). –
Huh, interesante ... por mucho que me gustaría utilizar la función, soy demasiado paranoico sobre una futura pieza de hardware rompiendo mi aplicación si mi aplicación ignora ese valor reportado. :( –