我使用alpha紋理。我想用某種顏色對它進行着色,所以它會根據顏色alpha值進行着色,但是整個不透明度將僅由紋理alpha定義。OpenGL ES:如何用顏色着色紋理
這與多紋理相似,但顏色代替第二紋理。 如何做到這一點?
(更新) 我試圖設置紋理組合器。顏色着色很好,但alpha有問題 - 它不會從紋理中獲得價值(如面膜)。 我在這個時刻的代碼:
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);
屏幕截圖:
沒有着色:
色調與RGBA =(0,0.5%,1%,0.5):
您的代碼似乎是正確的我。你能否附上alpha問題的截圖或描述它的壞處。 – iHunter 2011-12-26 17:39:05
你可以上傳紋理本身嗎? – 2011-12-31 19:30:32
另外,渲染代碼? – 2012-01-01 16:46:37