一些上下文。上面是彼得·雪莉(Peter Shirley)在一个周末的书中的“光线追踪”中的代码和得到的图像。从代码中可以看到,他添加了一些领域。但在最终图像中,并排有两个椭球。无论我看了多少次代码,我都无法理解为什么会这样。谁能向我解释?这是源代码的链接。
https://github.com/petershirley/raytracinginoneweekend
#1 楼
在外围出现拉伸的形状是透视投影的结果。视野(FOV)越宽,拉伸效果越强。为了演示效果,我在ShaderToy上写了一个简单的示例:https://www.shadertoy.com/view/ MltBW2
如您在下面的图像中看到的(对应于40、80和120的FOV;如果我没有记错的话),在宽FOV(例如90°和上面。
评论
$ \ begingroup $
很好的例子。不过,在地平面上具有某种纹理(例如网格)可能会有所帮助;否则,很难说出改变视角和仅移动相机之间的区别。 (另请参见:多莉变焦。)
$ \ endgroup $
–伊尔马里(Ilmari Karonen)
18年2月2日,11:47
$ \ begingroup $
还应注意,相对于物体与相机的距离,FOV较高时通常会发生这种效果。看起来不自然,因为您通常看不到眼睛附近的物体。至少,并非没有迅速转过眼睛。
$ \ endgroup $
–尼科尔·波拉斯(Nicol Bolas)
18年2月2日在13:56
评论
这看起来很正常,这是由于透视相机靠近球体并且具有较大的FOV值引起的。顺便说一句,这不是光线跟踪的唯一功能。