Ho texture con alfa. E voglio colorarlo con un po 'di colore, quindi sarà colorato a seconda del valore alfa del colore, ma l'opacità eccessiva sarà definita solo dalla texture alfa.OpenGL ES: come colorare la texture con il colore
Questo è simile alla multi-texturing ma con il colore invece della seconda trama. Come si fa?
(Aggiornato) ho cercato di impostare up di texture combinatore. Il colore è tinto bene, ma c'è un problema con l'alfa - non ha valore dalla trama (come la maschera). Il mio codice in questo 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);
Screenshots:
No colorazione:
Tint con RGBA = (0, 0,5, 1, 0,5):
Il codice sembra corretto per me. Potresti per favore allegare uno screenshot del problema alfa o descrivere cosa non va bene con esso. – iHunter
Potresti caricare la texture stessa? –
Inoltre, codice di rendering? –