我需要创建一个完全透明的表面,该表面通过轴的原点并始终与屏幕平行。
我正在尝试使用此代码(在 c++
中),但结果类似于 50% 混合(不完全):
glPushMatrix();
glLoadIdentity();
glBlendFunc(1, 1);
glBegin(GL_QUADS);
glVertex3f(-100, -100, -0.003814);
glVertex3f(100, -100, -0.003814);
glVertex3f(100, 100, -0.003814);
glVertex3f(-100, 100, -0.003814);
glEnd();
glPopMatrix();
附加信息:我需要这个透明表面来使用函数 gluUnProject(winX, winY, winZ, model, proj, view, &ox, &oy, &oz) ;
最佳答案
如果你只想填充深度缓冲区,你可以通过 glColorMask()
禁用颜色写入:
glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
drawQuad();
glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
doUnproject();
关于c++ - openGL中的全透明对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20586710/