opengl关于z方向的隐藏问题,前面的图形遮挡不住后面,高手请进,急 在vc中使用opengl绘图,出现一个怪问题,就是两个平面,十字交叉,使用了glEnable(GL_DEPTH_TEST);按理说z方向较深的部分应该隐藏,然而在交叉线的附近,应该隐藏的部分有一些会显示,好像前面的图形遮挡不住后面的.仅只是一部分,并且通过旋转和缩放,遮挡不住的区域会变化,各位大侠,是什么原因阿,好几天了,帮帮忙阿. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 清了glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); 这个现象叫做 z-fighting。两个 face 处于相同的深度,但是由于浮点误差,导致某一些像素在前,某些像素在后。这是无法避免的事情。通过调整深度检测函数是无法避免的。需要通过 glPolygonOffset 来搞定 视区范围的深度范围太大,以至于在32位内无法判定深度值大小差别。典型的修改方法是最近的z深度值放大。例如:gluPerspective(...,...,10,100000000);//改为gluPerspective(...,...,100,100000000); 没开深缓吧加上glEnable(GL_DEPTH_TEST); 移动滚动条,图像重绘问题 vc 界面美化 那一堆 win32 SDK 的代码怎么办? 消息和事件有啥区别? 关于窗口的风格 请问如何在对话框的指定位置显示一个ico图? MFC小问题 在delphi和vc中,怎么样引用从动态库输出的类?最好能给出一段souce code? 用SetTimer实现对动态屏幕定时捕获,可是运行一会程序界面上的画面就停止,不能再捕获,见代码 初学vc++有一个问题像大家请教啊 拖放的问题! 控件重画的问题,该在那重画呢?
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
某一些像素在前,某些像素在后。这是无法避免的事情。通过调整深度检测函数是无法避免的。需要通过 glPolygonOffset 来搞定
典型的修改方法是最近的z深度值放大。例如:
gluPerspective(...,...,10,100000000);
//改为
gluPerspective(...,...,100,100000000);
加上glEnable(GL_DEPTH_TEST);