c - 为透视图设置坐标系?

标签 c opengl projection-matrix frustum perspectivecamera

我理解平截头体观察系统背后的概念;它的形状像金字塔,随着物体靠近中心,它们会变小,直到最终被剪掉。但是,当使用 OpenGL 等 View 投影时(注意:我不使用已弃用的功能),您可以像这样设置坐标系:

orthoExample(左、右、下、上、近、远);

这一切都很好,但是当谈到视角时,事情就变得有点奇怪。

perspectiveExample(field_of_view_y, 方面, 近, 远);

如何使用这样的函数设置坐标系?!?它不允许我指定左、右、下、上等。我知道透视只是平截头体投影的一种变体...

最佳答案

找到代码here应该会帮你解决问题。

Z 轴被视为投影中心。 tan(fov_y)*near 给出顶部(和负值,底部)。纵横比是宽度与高度的比率,因此将顶部乘以纵横比得到右侧,其负数得到左侧。

关于c - 为透视图设置坐标系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12850653/

上一篇:c - 性能下降

下一篇:c - fgets 被传递

相关文章:

c - 查找文本文件中的字符数、单词数和行数

c - OpenGL矩阵问题

c - 尝试将数据从文件存储到结构数组

c - 用于从 char 类型中减去的简单 C 语法,小写

opengl - 图形硬件上的 float 与 double

java - LWJGL glTranslate 做奇怪的事情

matrix - 如何从里程计/tf 数据中获取投影矩阵?

c - 将用户输入的大数字存储到整数数组中

java - OpenGL法线的误解?