【问题标题】:Objects look stretched out/distorted only around edges of screen [duplicate]对象看起来仅在屏幕边缘被拉伸/扭曲[重复]
【发布时间】:2021-10-05 11:40:51
【问题描述】:

这是我的透视相机的 FOV 问题吗?在我的场景中,球体在到达屏幕边缘时看起来像鸡蛋/椭圆形而不是球体。有人知道为什么会这样吗?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    听起来您遇到了 3D 的不幸现实之一。

    在任何 3 维场景中,来自给定点的视图最自然地被认为是一个球体。当我们渲染场景时,我们正在渲染该球体的一部分,但我们需要以某种方式将球体的那一部分转换为平面矩形,因为我们的计算机屏幕是平面的,而不是圆形的。

    因此,为了将 3D 场景渲染为矩形,软件需要使用投影。对于 3D 渲染,最常见的投影可能是直线投影,也称为指针投影。 (在 Wikipedia 上,有关摄影中的直线投影的讨论,请参阅“Rectilinear lens”,有关制图中的直线投影的讨论,请参阅“Gnomonic projection”。)

    直线投影的最大优点是场景中的直线在渲染中显示为直线。一个很大的缺点是远离中心的物体会变形:小圆圈会变成大椭圆。

    这种现象是不可改变的数学事实,任何软件都无法克服。但是,您可以采取一些措施来缓解这种情况。一种选择是使用更窄的视野。另一种选择是使用不同的投影;这里的答案对如何做到这一点有一些建议:Three.js - Fisheye effect

    【讨论】:

    • 我忘了说谢谢,所以谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2012-07-16
    相关资源
    最近更新 更多