OpenGL的一个难题,把高手难住了!
如果一个给定三角形与视点方向平行(即三角形法向量与视点方向垂直),在非线框模式下在framebuffer中将没有这个三角形对应的像素。例如:如果视点方向为z轴负向,用下面的代码画三角形,屏幕上(framebuffer)没有变化。
glBegin(GL_TRIANGLES );
glVertex3f(-1.0, 1.0, 0.0);
glVertex3f(1.0, 1.0, 0.0);
glVertex3f(0.0, 1.00, 1.0);
glEnd();
哪位高人遇到这样的问题.
说明:因为要读取depth信息,如果出项这种情况,该三角形的depth信息就会丢掉。改成线框模式不行,因为如果前后裁减面很近(前后面都与这个三角形相交),在裁减体内除了边上的两个点,内部就没有东西了。只能用非线框模式,但是就会遇到最开始提到的问题.
高手们,想想如何解决。