Shi*_*gon 8 opengl matrix glulookat
OpenGL文档说应该在GL_MODELVIEW矩阵上完成gluLookAt()调用:
http://www.opengl.org/resources/faq/technical/viewing.htm
事实上,文档链接到一篇文章,该文章说在GL_PROJECTION矩阵上使用gluLookAt()极其糟糕:
另一方面,有许多教程和示例,其中gluLookAt()实际上是在GL_PROJECTION矩阵上调用的.同时,虽然上面提到的文章确实说不在GL_PROJECTION矩阵上使用它,但是在大多数这样的用法中,这样做没有明显的问题.
那么我的问题是:在现实生活中使用gluLookAt()的最佳方法是什么?在GL_PROJECTION矩阵上使用它真的不是很难吗?
gluLookAt()函数为您提供转换矩阵,用于转换场景中对象的旋转.所以这显然是模型转换,必须进入GL_MODELVIEW矩阵.
至于为什么,当你在顶点着色器中自己做时,这会变得更清晰:
虽然顶点的位置确实是正确的v.pos * modelview * projection,但是需要模型视图矩阵而没有用于其他计算的投影组件(例如照明和雾).这就是固定功能管道分离这两个矩阵的原因.
所以你应该坚持使用API中指定的范例,尤其是永远不要相信任何无数糟糕的opengl"教程".
| 归档时间: |
|
| 查看次数: |
5851 次 |
| 最近记录: |