我決定將我的Android項目移至C++,並且遇到問題。在Java代碼中,我加載了沒有alpha值的紋理,黑色實際上是我的透明顏色,但現在我無法做到這一點。黑色只是黑色,不透明。OpenGL ES black as alpha(transperancy)
我加載紋理爲這樣:
GLuint texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,GL_MODULATE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, (GLvoid*) image_data);
'glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);'這不是紋理對象狀態。它不會與紋理一起存儲,幾乎肯定不應該在那裏調用。 – 2012-02-26 17:06:59
你說的對,我錯了,但刪除它劑量修復我的問題 – SteveL 2012-02-26 17:12:06
這就是爲什麼它是一個評論,而不是一個答案。僅供參考。 – 2012-02-26 17:14:45