我在我的OpenGL ES场景(版本1.1)中有一个纹理对象,我想将其更改为0.5。更改OpenGL ES对象的Alpha值 - GL_BLEND - iPhone
我想下面的代码:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glColor4f(1.0, 1.0, 1.0, 0.5);
glVertexPointer(3, GL_FLOAT, 0, vertexes);
glNormalPointer(GL_FLOAT, 0, normals);
glTexCoordPointer(2, GL_FLOAT, 0, textures);
GLfloat ambientAndDiffuse[] = kAmbience;
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, ambientAndDiffuse);
GLfloat specular[] = kSpecular;
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, kShininess);
GLfloat emission[] = kEmission;
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);
glDrawElements(GL_TRIANGLES, vertexCount, GL_UNSIGNED_SHORT, indices);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_BLEND);
的问题是,该模型的透明度不改变。该模型是正确显示在屏幕上,但是仍然阿尔法为1
编辑
我的纹理是JPG格式。我需要将它们保存为PNG吗?
任何人都可以发现我可以改正这一点吗?
谢谢。
谢谢 - 我在这一行中添加了(上面更改的代码),但屏幕上没有任何更改。 – GuybrushThreepwood 2012-04-09 06:52:10
此外,glTexEnvi的默认值是GL_MODULATE,所以不需要设置它,除非您在别处更改它。 – GuybrushThreepwood 2012-04-09 11:29:09