Tengo textura con alfa. Y quiero teñirlo con un poco de color, por lo que será de color dependiendo del valor alfa del color, pero la opacidad general se definirá solo por la textura alfa.OpenGL ES: Cómo teñir la textura con el color
Esto es similar a la texturización múltiple pero con color en lugar de segunda textura. ¿Cómo hacerlo?
(Actualizado) He intentado configurar el combinador de texturas. El color está teñido bien, pero hay un problema con la alfa, no toma valor de la textura (como la máscara). Mi código en este momento:
glActiveTexture (GL_TEXTURE0); // do we need stage #1?
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, (GLfloat*) &tintColor_);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC2_RGB, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_ONE_MINUS_SRC_ALPHA);
// this doesn't work for alpha:
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
Imágenes:
No teñido:
Tint con RGBA = (0, 0,5, 1, 0,5):
Su código parece correcto para mí. ¿Podría adjuntar una captura de pantalla del problema alfa o describir lo que está mal con él? – iHunter
¿Podría cargar la textura en sí? –
También, ¿código de representación? –