除了正交和透视以外,是否还有3D投影?[关闭]


22

标题中几乎有这个问题。除了正投影和透视以外,是否还有可用于3D系统(例如OpenGL)的显着3D投影?

特别是在游戏设计中是否有特殊用途?

Answers:


23

是的,仅举几例:

该Pannini投影,例如,可以捕捉的视在广泛的领域不错的方式。(完全是我的意见)

我认为实施细节将超出此特定问题的范围。


编辑:感谢您的评论,我没有拼写Pannini。为了使此编辑有价值,这里还有更多一些:

  • 抛物面/双抛物面(用于反射,阴影,彩色玻璃)
  • 等角矩形(可以产生球体的世界地图视图)
  • 球形
  • 正弦曲线

4
+1进行Panini投影;我以前从未听说过那个。顺便说一句,只要我们谈论的是非线性投影,双抛物面就是有时用于环境贴图和阴影贴图的一种。
内森·里德

非常挑剔,但似乎是“ Pannini”投影,而不是“ Panini”投影。
aardvarkk 2014年

很酷!我猜这些都是非线性的,就像内森·里德(Nathan Reed)所说的那样?
jmite 2014年

我相信,您很可能必须使用硬件细分或图像处理来在实践中实现它们。我在考虑另一个将直线映射为直线的投影时遇到麻烦,但是如果我提出了一些建议,我会将其添加到此答案中。
MickLH 2014年

它可能不存在,这正是我在想的那种!
jmite 2014年

15

这取决于您的意思是“可以在OpenGL等3D系统中使用”。:)

狭义地说,像OpenGL这样的3D图形硬件和API仅能正确处理线性投影-将世界空间中的直线映射到图像上的直线的投影。他们从不将某些东西扭曲成弯曲的形状(除非开始时是弯曲的)。这是因为GPU依赖于具有直边的三角形,以便在屏幕上正确光栅化它们。

如果我们将自己限制为线性投影,则没有太多选择。除了标准的正交和透视图之外,还存在通过剪切视锥面而获得的“偏心”变化。

  • 偏心正投影称为 斜射投影,通常用于工程图,但在游戏中显示不多。
  • 偏心透视投影 用于立体3D渲染中,因为事实证明,如果剪切平截头锥体而不是旋转它们以聚焦在对象上,则左眼视图和右眼视图在大脑中的融合效果更好。

这些投影可以用普通的4×4投影矩阵表示,并可以毫无问题地用在3D API中。

然后是非线性投影,它没有将直线映射到直线的限制。他们被允许将事物扭曲成曲线。其中有很多,包括圆柱形,球形,各种类型的鱼眼等。

对于非线性投影,您不能简单地使用投影矩阵。您必须以某种方式使用着色器自己实现投影。一种方法是编写自定义顶点着色器以对每个顶点进行投影。GPU仍将在顶点之间用直线绘制三角形,因此,虽然小三角形非常接近正确,但是较大的三角形将明显是错误的。 这可能会导致问题,并且可能需要非常精细地细分几何图形以便正确渲染。

获得非线性投影的第二种方法是先使用常规的透视投影来渲染场景(也许是对每个立方体面都有透视投影的立方体贴图),然后应用后处理像素着色器将其重新采样到所需的颜色非线性投影。这具有不需要修改几何体的优点,但是由于需要额外的渲染工作,因此可能会更加昂贵,并且如果首遍渲染的分辨率不足,则结果在某些区域可能会变得模糊。例如,Oculus Rift游戏使用后处理方法来实现Rift使用其镜头所需的非线性投影。


1

我不敢相信,但是没有人提到等轴测投影,这种投影曾经很常见。


11
据我所知,等轴测投影是正投影和透视图这两种其他投影类型的特定用例。例如,具有特定角度视图的正射投影将为您提供等距相机。
Grimshaw 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.