gpt4 book ai didi

opengl - glm::perspective 与 gluPerspective

转载 作者:行者123 更新时间:2023-12-02 04:21:49 33 4
gpt4 key购买 nike

我正在用 glm 替换我的项目中对 glu 方法的使用,我似乎遇到了一个我无法解释的奇怪差异。当我使用此代码使用 gluPerspective 设置投影矩阵时,我得到以下显示:

gluPerspective version

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70.0f, (GLfloat)w / (GLfloat)h, 0.0001f, 1000.0f);

如果我切换到 glm::perspective,我会得到:

glm::perspective version

glMatrixMode(GL_PROJECTION);
glm::mat4 projectionMatrix = glm::perspective(70.0f, (GLfloat)w / (GLfloat)h, 0.0001f, 1000.0f);
glLoadMatrixf(&projectionMatrix[0][0]);

很明显,我正在渲染的对象现在使用 glm 版本占用了更多的显示内容。除了将 gluPerspective 替换为 glm::perspective 之外,这两个版本没有其他变化。

我猜我可能做错了什么,因为我的理解是 glm::perspective 应该是 gluPerspective 的替代品。但目前我还不知道那到底是什么。

此外,方向的差异是因为对象在场景中旋转。我只是在动画的不同时间截取了屏幕截图。

最佳答案

glm 现在默认使用弧度,而gluPerspective() 使用度数,所以你必须使用

glm::perspective(glm::radians(70.0f), ...);

获得与 gluPerspective(70.0f, ...) 相同的结果。

关于opengl - glm::perspective 与 gluPerspective,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442295/

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