¿Alguien sabe cómo habilitar la mezcla en OpenGL (Android) en un HTC Desire. Estoy tratando de dibujar triángulos de colores y usar el valor alfa del buffer de color para mezclarlos con el fondo (u otro triángulo).¿Por qué la mezcla OpenGL no funciona en HTC Desire?
Funciona tanto en el emulador (2.1) como en un htc hero 2.1 pero no en mi deseo con 2.2. ¿Hay alguna diferencia de hardware entre un héroe y un deseo que causa esto?
El material principal del código es (no en orden):
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
private final static float[] colors = {
1f, 0f, 0f, 0.5f, // point 0 red
1f, 0f, 0f, 0.5f, // point 1 red
1f, 0f, 0f, 0.5f, // point 2 red
1f, 0f, 0f, 0.5f, // point 3 red
1f, 0f, 0f, 0.5f, // point 4 red
1f, 0f, 0f, 0.5f, // point 5 red
1f, 0f, 0f, 0.5f, // point 6 red
1f, 0f, 0f, 0.5f, // point 7 red
};
PS. Puedo proporcionar más código si alguien lo necesita ...
Supongo que el deseo no implementa la función. A diferencia de Direct3D, que recae en la representación del software, con OpenGL si una función no está implementada, simplemente no funciona. O al menos así es como solía funcionar. – ChrisF
El hecho es que los triángulos mezclados con texturas parecen funcionar en el deseo. Pero no cuando se usan memorias intermedias de color. – Sunkas
Ocurre exactamente lo contrario. Con DirectX, si se informa que una característica es compatible, se hará en hardware. Con OpenGL (incluido GL | ES), se debe admitir una característica que no sea una extensión. Si no está en el hardware, entonces en el software. Para OpenGL | ES 1.0 alfa-blending es obligatorio. –