Opengl:屏蔽问题

时间:2010-05-14 14:03:34

标签: opengl masking blending

我正在使用opengl中的掩码在墙上创建一个洞,我的代码就像这样简单地退出了,

//Draw the mask
glEnable(GL_BLEND);                         
glBlendFunc(GL_DST_COLOR,GL_ZERO);  
glBindTexture(GL_TEXTURE_2D, texture[3]);

glBegin(GL_QUADS);
glTexCoord2d(0,0); glVertex3f(-20,40,-20);
glTexCoord2d(0,1);glVertex3f(-20,40,40);
glTexCoord2d(1,1);glVertex3f(20,40,40);
glTexCoord2d(1,0);glVertex3f(20,40,-20);

glEnd();

//Draw the Texture
glBlendFunc(GL_ONE, GL_ONE);


glBindTexture(GL_TEXTURE_2D, texture[2]);
glBegin(GL_QUADS);
glTexCoord2d(0,0); glVertex3f(-20,40,-20);
glTexCoord2d(0,1);glVertex3f(-20,40,40);    
glTexCoord2d(1,1);glVertex3f(20,40,40);
glTexCoord2d(1,0);glVertex3f(20,40,-20);
glEnd();

问题是,我正确地在墙上打了一个洞,但它是半透明的,我变得像黑色的阴影,我也可以看透它。 这是我得到的照片: alt text http://i43.tinypic.com/iw7ju0.jpg

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

已解决:D 一旦我将法线设置在正确的位置,表面的法线就会出现问题。黑色阴影消失了。