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中复制结构的唯一成员

c - 对 send() 的多次调用合并为对 recv() 的一次调用

opengl - 使用 GL_SHADER_STORAGE_BUFFER 将数组传递给片段着色器

java - OpenGL 渲染到纹理坐标

opengl - 为什么相机默认面向z轴负端?

损坏的 ints 和 sscanf——以及其他与 C 相关的内存问题

c - OpenSSL MD5 每次都会给出不同的哈希值

opengl - 在 OpenGL 中绘制复杂曲面

c++ - 我无法在Visual Studio 2012中使用SDL + OpenGL

c++ - 如何创建匹配当前投影矩阵的 glClipPlanes?