我正在建造建筑和景观的比例模型。我正在使用openGL和GLUT以及功能gluperspective。我知道函数的最后两个参数定义了z-clipping路径,只能是正数。好吧,我有东西用负z值渲染。好吧,它正在削减,这是有道理的。有没有人建议如何阻止这个用负z值剪切我的东西?我对葡萄糖的看法如下。
gluPerspective(50.0, (double)w / (double)h, 1.0, 300.0);
答案 0 :(得分:2)
3d空间中的zbuffer和z值之间存在差异。想象一下,你有一个相机,并把它拿到你的眼睛。 1.0是相机的屏幕(即最近的物体可以到达你),300.0是相机可以看到的最远的。这些定义了zbuffer的“范围”(设置剪辑)。
现在如果你身后有一个物体怎么办?那么z-VALUE(不是z缓冲区)是否定的。你怎么看?只需转身(有效地将相机指向一个新的方向.z缓冲区保持不变(即小于1.0或超过300.0的对象不可见),但具有负z-VALUE的对象不可见。< / p>
因此,使用gluPerspective,您可以设置透视矩阵(即摄像机的字段视图和范围)。然后,要查看身后的物体,您需要设置视图矩阵(即相机的方向)。
编辑:因此,要查看具有负z-VALUE(不转身)的内容,请向后移动相机(即更改视图矩阵,使其位置更靠后)。< / p>