gpt4 book ai didi

opengl - GL_PROJECTION矩阵或GL_MODELVIEW矩阵上的gluLookAt()最佳用法

转载 作者:行者123 更新时间:2023-12-04 06:44:21 24 4
gpt4 key购买 nike

OpenGL文档说gluLookAt()调用应在GL_MODELVIEW矩阵上完成:

http://www.opengl.org/resources/faq/technical/viewing.htm

实际上,文档链接到一篇文章,该文章说在GL_PROJECTION矩阵上使用gluLookAt()非常糟糕:

Help stamp out GL_PROJECTION abuse

另一方面,有许多教程和示例实际上在GL_PROJECTION矩阵上调用了gluLookAt()。同时,虽然上面提到的文章确实说不要在GL_PROJECTION矩阵上使用它,但它说在大多数这样的用法中,这样做没有明显的问题。

那么我的问题是:在现实生活中的项目中使用gluLookAt()的最佳方法是什么?在GL_PROJECTION矩阵上使用它真的很多吗?

最佳答案

gluLookAt()函数为您提供了一个转换矩阵,可以转换场景中对象的旋转。因此,这显然是模型转换,必须放入GL_MODELVIEW矩阵中。

至于为什么,当您自己在顶点着色器中进行操作时,这将变得更加清晰:

虽然顶点的位置确实只是v.pos * modelview * projection,但需要模型 View 矩阵而不需要用于其他计算的投影分量(例如,照明和雾)。这就是固定功能管道将这两个矩阵分开的原因。

因此,您应该遵循API中指定的范例,尤其不要相信任何无数糟糕的opengl“教程”。

关于opengl - GL_PROJECTION矩阵或GL_MODELVIEW矩阵上的gluLookAt()最佳用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9539796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com