2011-12-20 61 views
0

我似乎有提到相同的问题here(搜索“why are my spheres distorted when they get near the edge of the window?”,因为有很多不相关的讨论)。该环节的解决方案将FOV大大降低到10,这似乎使我的场景在z方向上变得很浅。别人提到,纵横比可能会关闭,但我不是很知道这一点:gluplaheres看起来长圆形

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

不管怎么说,在60的FOV,我的场景是这样的:

boo

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

+0

得到正确的视角并不是一件容易的事。除非我能够提出一个好的答案(或其他人),否则让我提一下,gluPerspective的zFar参数应该是一个**正值**值。 – 2011-12-20 20:51:03

回答

2

这是为什么?

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

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

在仿射投影的情况下是。

但是,使用顶点着色器可以实现基于角度的投影。然而那些要求几何被充分tesselated。必须细分长条形边缘(如背景框的边缘)。镶嵌着色器可以提供帮助。另一种方法是将立方体贴图渲染为90°FOV的5次方形视图,然后从该立方体贴图中绘制角度投影。

相关问题