文件名称:设置合理的视角-pt100换算表
文件大小:20.23MB
文件格式:PDF
更新时间:2024-07-31 06:22:30
OpenGL ES
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 所示。