我使用OpenGL ES在我的iPhone遊戲中繪製東西。有時我喜歡更改我正在繪製的紋理的alpha值爲。這是我使用的(工作)代碼。此代碼示例中的什麼,如果有的話,是不必要的?謝謝!我在做什麼,這是不必要的? (iPhone,OpenGL ES)
// draw texture with alpha "myAlpha"
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,GL_COMBINE);
glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB,GL_MODULATE);
glTexEnvf(GL_TEXTURE_ENV, GL_SRC0_RGB,GL_PRIMARY_COLOR);
glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB,GL_SRC_COLOR);
glTexEnvf(GL_TEXTURE_ENV, GL_SRC1_RGB,GL_TEXTURE);
glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB,GL_SRC_COLOR);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glColor4f(myAlpha, myAlpha, myAlpha, myAlpha);
glPushMatrix();
glTranslatef(xLoc, yLoc, 0);
[MyTexture drawAtPoint:CGPointZero];
glPopMatrix();
glColor4f(1.0, 1.0, 1.0, 1.0);
編輯:
上面代碼示例是用於繪製瓦特/ 改性的α-值(所以我可以淡入事物和出)。當我只想繪製不用修改alpha值的時候,我會使用上面示例的最後5行,而沒有最後一次調用glColor4f。
嘿,尼克,我只是想繪製一個修改後的alpha值的紋理(所以我可以淡入淡出紋理)。我不確定是否所有代碼行都是必需的。 – MrDatabase 2009-06-17 04:11:15