|
|
请问:为什么我贴图后背景的颜色总是与上一次绘制物体的颜色相同,却不是透明的,
在OPENGL中使材质镂空的关键因素有哪些呢?
为什么我在一个程序中已经成功绘制的平面树,移植到另外一个程序中确不好用了呢,困扰中……,
引用类似代码:就是《学OpenGL编3D游戏》书中的一段(有所改动),
baiscobj::baiscobj()
{
……………………
LoadT16("data/images/CACTUS0.BMP",g_cactus[11]);
glEnable(GL_TEXTURE_2D);
……………………
}
void baiscobj: oadT16(char *filename, GLuint &texture)
{
……………………………………
}
void baiscobj::ShowTree(float x,float z,float h,float s,int cactus)
{
…………………………
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0);
glBindTexture(GL_TEXTURE_2D, g_cactus[cactus]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);
glEnd();
glDisable(GL_ALPHA);
glDisable(GL_BLEND);
…………………………
}
除了这些还有没有什么关键的因素会影响贴图的背景颜色呢? |
|