最近在使用OrthographicCamera正投影相机的时候,发现总是无法看到场景,折腾了许久才发现原来是对OrthographicCamera的参数理解有问题。查阅了网上,大部分资料对参数的解释都是和官方一直的,但是我在官方解析的基础上总结了自己的理解。
官方解释:
OrthographicCamera( left, right, top, bottom, near, far )
left — 相机视椎体(Camera frustum)左面。
right — 相机视椎体(Camera frustum)右面。
top — 相机视椎体(Camera frustum)上面。
bottom — 相机视椎体(Camera frustum)下面。
near — 相机视椎体(Camera frustum)前面(靠近相机的这一面)。
far — 相机视椎体(Camera frustum)后面(远离相机的这一面)。
我的理解:
left:左面,即以摄像机(初始相机)所在点为原点,向左的最大距离。
right:右面,即以摄像机(初始相机)所在点为原点,向右的最大距离。
top:上面,即以摄像机(初始相机)所在点为原点,向上的最大距离
bottom:下面,即以摄像机(初始相机)所在点为原点,向下最大距离。
near :渲染起点。以摄像机(初始相机)所在点为原点,垂直于left\right\top\bottom构成的十字坐标系,从距离原点什么位置开始进行渲染。
far:渲染重点。以摄像机所在点为原点,垂直于left\right\top\bottom构成的十字坐标系,到距离原点什么位置结束渲染。
也就是说,6个参数都是相对于原点的长度,而不是模型的最大坐标点和最小坐标点。
我一开始是计算模型的box3的最大坐标点和最小坐标点,使用最大坐标点最小坐标点作为正投影相机的初始化参数,导致不管如何设置都看不到场景的任何信息。后面换成上诉的理解后才可以正常的使用。
如果有理解错误,欢迎大家指正。