gluSpheres看起来长圆形

时间:2011-12-20 20:40:59

标签: opengl

我似乎有同样的问题提到here(搜索“why are my spheres distorted when they get near the edge of the window?”,因为有很多不相关的讨论)。该链接的解决方案是将FOV大幅降低到10,这似乎使我的场景在z方向上非常浅。有人提到宽高比可能会关闭,但我不太确定:

gluPerspective(60, (GLfloat)width / (GLfloat)height, 1, -200);

无论如何,在60的FOV,我的场景看起来像这样:

boo

将其更改为45会有所帮助,但球体在边缘附近看起来仍然会变形。为什么是这样?这种扭曲是不可避免的吗?

1 个答案:

答案 0 :(得分:2)

  

这是为什么?

这是仿射透视投影的工作方式。

  

这种扭曲是不可避免的吗?

在仿射投射的情况下是。

但是,使用顶点着色器可以实现基于角度的投影。然而,那些需要充分地测试几何形状。必须拆除长直线边缘(如背景框的边缘)。 tesselation着色器可以提供帮助。另一种方法是在立方体贴图中渲染5个90°FOV的二次视图,然后从该立方体贴图中绘制一个角度投影。