【发布时间】:2012-10-02 18:32:18
【问题描述】:
我了解平截头体查看系统背后的概念;它的形状像金字塔,随着物体靠近中心,它们会变小,直到最终被剪掉。但是,当在 OpenGL 中使用查看投影时(注意:我不使用已弃用的功能),您可以像这样设置坐标系:
orthoExample(left, right, bottom, top, near, far);
没关系,但说到透视,事情就有点奇怪了。
perspectiveExample(field_of_view_y, aspect, near, far);
如何使用这样的功能设置坐标系?!?它不允许我指定左、右、下、上等。我知道透视只是平截头体投影的一种变体......
【问题讨论】:
-
确实没有正交投影那么简单。我不记得数学了,但你可以看看 GLU 库的 gluPerspective 命令。它大大简化了透视投影的设置。如果你真的想,我可以做一些数学研究并将它们发布在这里(它们并不难)。
-
我建议查看 GLM - OpenGL 数学库。它具有构建所有这些的例程 - 并且面向 GLSL(例如,非弃用功能;))glm.g-truc.net
-
我希望可以,但我使用的是 C。不过,我使用的是类似的库,所以如果你能指出我类似的 GLM 方法。 @ViníciusGobboA.deOliveira:我正在使用来自单独库的等效函数,但我不明白如何通过该命令设置坐标系?我知道它在内部使用了截锥体。
-
我将清除我书本上的灰尘,并挖掘数学实际上是如何完成的。我有一个斯诺克游戏的旧项目(我想是 2009 年),只是为了好玩。我将向您发送使用 gluPerspective 设置投影的 cod sn-p(或整个项目,如果您愿意)。这不是您想要的,但它可能对我们双方都有帮助。
标签: c opengl projection-matrix frustum perspectivecamera