-1

我正在使用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();

问题是,我在墙上找到了正确的洞,但它是半透明的,我在它上面变得像黑色阴影,我也可以看穿它。这是我得到的照片: 替代文字

有什么建议么?

4

1 回答 1

-1

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

于 2010-05-14T22:52:48.260 回答