El código OpenGL que funciona en el Nexus One no funciona correctamente en el Nexus S. Las texturas no parecen reproducirse y me queda solo el negro donde deberían estar las texturas.Textura negra OpenGL ES en Nexus S
¿Alguien tiene alguna idea?
El código OpenGL que funciona en el Nexus One no funciona correctamente en el Nexus S. Las texturas no parecen reproducirse y me queda solo el negro donde deberían estar las texturas.Textura negra OpenGL ES en Nexus S
¿Alguien tiene alguna idea?
Los accepted answer given here aborda esta cuestión en un poco más profundidad que yo quiero, sino mientras este problema pantalla en negro no surgen de la Nexus S (y algunos otros dispositivos) siendo estrictos con las texturas de potencia de dos, , no significa que las texturas necesiten tener dimensiones que sean un Po2.
En el código de la textura de carga, uno puede tener las siguientes líneas:
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
y si se modifica el código para agregar dos líneas más para la sujeción, el teléfono se apoyo NpO2 texturas proporcionan una es está bien con sujeción. Aquí está el código con la sujeción adicional:
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
Nexus S es más estricto sobre el tamaño de las imágenes que se utilizan como texturas en OpenGL ES.
Texturas deben ser de un tamaño de 2^n (por ejemplo, 256, 512, 1024, etc.)
¿No se puede usar GL_CLAMP_TO_EDGE para evitar este problema? –
Una buena idea podría ser pegar algún código. Para empezar, ¿estás habilitando la unidad de textura? –