Opengl es Matrix.frustumM导致无法将近绘制距离设置为零的问题

Opengl es Matrix.frustumM导致无法将近绘制距离设置为零的问题,opengl-es,Opengl Es,当使用Matrix.trustumm设置OpenGLES绘制距离时,我注意到不能将“近绘制距离”设置为零,任何小于1的值都会产生非常奇怪的失真。将“近距离”(near distance)设置为1在大多数情况下都可以正常工作,但当摄影机移动到比该距离更近的对象时,由于对象未绘制(或部分对象未绘制),因此看起来很可怕。对此有什么办法吗? 非常感谢您抽出时间。实际上没什么可做的。近剪裁平面和远剪裁平面将像素剪裁得更靠近near或更远far。除此之外附近的有点特殊,因为它通过边框参数的组合定义了您的视野

当使用Matrix.trustumm设置OpenGLES绘制距离时,我注意到不能将“近绘制距离”设置为零,任何小于1的值都会产生非常奇怪的失真。将“近距离”(near distance)设置为1在大多数情况下都可以正常工作,但当摄影机移动到比该距离更近的对象时,由于对象未绘制(或部分对象未绘制),因此看起来很可怕。对此有什么办法吗?
非常感谢您抽出时间。

实际上没什么可做的。近剪裁平面和远剪裁平面将像素剪裁得更靠近
near
或更远
far
。除此之外附近的
有点特殊,因为它通过边框参数的组合定义了您的视野(
)。所以,如果你有一个和那些边框坐标相同的四边形,那么当
离你很近时,它就会全屏显示。因此
附近的
平面不能为零,甚至不能为负数,因为例如,使用平截头体的距离为零单位的对象看起来会被无限缩放

仍然可以使用小于1的值,而不会产生一些奇怪的瑕疵。您应该做的是查看一些示例,了解如何通过设置视野来定义平截头体。通常,您可以为其中一个维度定义角度(视野),例如45度宽度,然后根据需要定义
,但两者都应为正值。现在使用三角法计算
,使用
角度
,并使用相同的
向上
向下
值,但按屏幕(视图)比例缩放。这样,在更改
near
参数时,失真将不会有任何差异