Mam tekstury z alfa. Chcę go zabarwić jakimś kolorem, więc będzie on kolorowy w zależności od koloru alfa, ale nadmiarowość będzie definiowana tylko przez teksturę alfa.OpenGL ES: Odcień tekstury w kolorze
Jest to podobne do teksturowania wielowarstwowego, ale z kolorem zamiast z drugą teksturą. Jak to zrobić?
(Zaktualizowane) Próbowałem skonfigurować łącznik tekstury. Kolor jest podbarwiony, ale występuje problem z alfa - nie ma wartości z tekstury (jak maska). Mój kod w tej chwili:
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);
Zrzuty ekranu:
Nie barwienia:
Tint z RGBA = (0, 0,5, 1, 0,5):
Kod wydaje mi się poprawne. Czy możesz dołączyć zrzut ekranu z problemem alfa lub opisać, co w nim złego. – iHunter
Czy możesz przesłać samą teksturę? –
Również renderowanie kodu? –