为透视观看设置坐标系?

时间:2012-10-12 00:35:27

标签: c opengl projection-matrix frustum perspectivecamera

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

orthoExample(left,right,bottom,top,near,far);

这一切都很好,但说到透视,事情变得有些奇怪。

perspectiveExample(field_of_view_y,aspect,near,far);

如何设置具有此功能的坐标系???它不允许我指定左,右,底,顶等。我知道透视只是一个截头投影的变体......

1 个答案:

答案 0 :(得分:0)

找到的代码here应该为您解决问题。

Z轴被视为投影的中心。 tan(fov_y)* near给你顶部(和底部)。 aspect是宽度与高度的比率,因此将top与aspect相乘会给出正确的,而对于它则为负。