• 关于glulookat 设计得多余且矛盾的一点小猜测


    我发现glulookat(eye_x,eye_y,eye_z,obj_x,obj_y,obj_z,dir_x,dir_y,dir_z)有一点多余和矛盾。

    (0)实际上一个相机系统只要一个观察点、两个观察向量就可以了,这两个观察向量一个代表观察的正方向,一个代表相机顶的朝向。

    (1)在glulookat中,前三个参数表示观察点。中间三个参数表示目标点。然而,相机需要的是观察方向,所以它会用目标点减去观察点来得到这个向量。该向量只代表方向,因此,它本身有多大是无所谓的。至于你能不能看到目标点不取决于这个向量的大小,而取决于在投影阶段你的视景体的设置(znear,zfar)。因此,这个目标点的设计有点问题,比如,如果观察点是(0,0,0),那么目标点设成(0,0,1)和(0,0,100),其效果是一样的。

    (2)最后三个变量代表了相机顶的朝向,这是一个空间向量。然而,一旦设置了观察方向(就是中三减去前三得出的向量),那么这个机头只能在垂直于这个向量的平面内设定,因此实际上只有两个变量(dir_x,dir_y)在决定其朝向。dir_z是不起作用的,这个参数是个没用的参数。如果不好理解,试想这样的画面:一个相机的观察方向,和它的机头方向之间的角度,成了钝角,这个相机是一个怎么样的相机?....显然它们之间的角度永远都是直角的。

  • 相关阅读:
    outlook 2007无法连接exchange server时的解决方法
    Source模式和Design模式无法转换 在VS2008
    自定义CreateUserWizard 控件
    自定义CreateUserWizard 控件
    锋利的jQuery第三章
    Repeater控件的ItemDataBound事件
    jquery获取select,option所有的value和text
    Jquery中的缩写总结
    asp.net本质论学习笔记第二章
    jquery的append函数
  • 原文地址:https://www.cnblogs.com/lookof/p/1444056.html
Copyright © 2020-2023  润新知