-
建立恰当的视角-pt100转换表
资源介绍
5.7 设置合理的视角
使用过照相机的读者都知道,拍摄时根据不同的情况应当选用不同焦距的镜头,这些不同焦距
镜头的一大区别就是视角不同。在同样的位置,视角大可以观察到更宽范围内的景物,但投影到照
片里的景物较小;视角小可以观察到的景物范围就窄一些,但投影到照片里的景物也就大一些。
同样,在 OpenGL ES 的虚拟世界中,摄像机也有视角大小的问题,具体情况如图 5-37 所示。
▲图 5-37 小视角和大视角
提示
从图 5-37 中可以看出,OpenGL ES 虚拟世界摄像机的左右视角大小主要是由
left、right 及 near 值决定的。可以想象出上下视角则由 top、bottom 及 near 值决定。
这些值(left、right、top、bottom、near)都是生成投影矩阵时需要提供的参数。
视角的大小可以根据公式计算出来,例如,水平方向视角的计算公式如下:
α =2arctan(left/near)
而垂直方向的视角计算公式为:
α =2arctan(top/near)
提示
上述两个计算公式是在左右或上下对称的(即 left 等于 right,top 等于 bottom)情
况下推导出的,若左右或上下不对称,则两个半角要分别计算。
同时,还可以从上述介绍中总结出如下规律。
在 left、right、top、bottom 值不变的情况下,near 值越小,视角越大,反之则视角越小。
在 near 值不变的情况下,left、right、top、bottom 值越大,视角越大,反之则视角越小。
因此,开发中当希望观察到同样范围的场景时就不止一种选择:可以将摄像机离得近一些,
同时将视角设置得大一些;也可以将摄像机离得远一些,同时将视角设置得小一些;具体情况如
图 5-38 所示。