今晚上踩了一个关于glClearDepth的坑,本以为glClearDepth是基于世界坐标系而进行运作的,结果发现竟然是基于eye space的,即视觉坐标系,它的深度计算法则是:按照摄像机的指向,物体离摄像机的距离而进行计算的,以右手坐标系为例子,z轴正方向指向屏幕外。
此时,若摄像机的z坐标值为3.0f,指向原点, 那么若物体A的z坐标值为2.0f的话,那么它的depth值则应该为1.0f.
因此,在我们调用glClearDepth在每个Timestep中清深度缓冲的时候,应该设置这个值为尽可能大的值,这样才能保证新绘制的图形总是会在背景画布的前面,如果像我今晚悲催的设置成glClearDepth(-10.0f),你会发现什么都绘制不出来~~
【openGL】glClearDepth的坑
最新推荐文章于 2025-03-03 09:53:18 发布