【问题标题】:Three.js perspectivecamera 'near' and 'far' parametersThree.js perspectivecamera 'near' 和 'far' 参数
【发布时间】:2020-09-26 13:41:15
【问题描述】:

我是 three.js 的绝对初学者(今天是探索的第一天),我对传递给透视相机的“近”和“远”参数的作用感到困惑。

我之所以问是因为我根本不明白为什么这些参数有用。唯一真正重要的是 fov 角度与纵横比相结合,这似乎隐含地定义了视框(平截头体),尽管不一定是平截头体的深度。根据我们要渲染的对象自动生成近和远参数(深度)而不是显式设置它们不是更合乎逻辑吗?
我问的原因是因为看起来当一个物体被放置在透视相机的“远”参数(物体的 z 轴)后面时,它就会掉下来(我很难理解为什么会这样感觉。你不会想让一个对象在 z 轴上掉下来,仅仅因为你在设置“远”参数时犯了一个错误,不够远。因为你在开始时自己将远参数设置为某个恒定值你的脚本,它似乎有点错误。

所以我的问题是,根据什么标准,您真正确定近参数和远参数应该是什么(而不是所有教程/书籍似乎都这样做的一些随机值)? 这可能是一个相当愚蠢的问题,因为从我读过的所有材料中似乎很明显,这些参数本质上应该被理解,因为我似乎无法找到解释。 (可能我经常会带着无数这样的愚蠢问题来到这里,哈哈)。

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您的场景有多“忙”? Far 将控制在渲染过程中将/不会被剔除的内容。你渲染的东西越多,花费的时间就越长。这适用于所有相机设置。看得越多,渲染得越多。

    你说

    您不想让对象在 z 轴上掉下来,只是 因为你在设置'far'参数时犯了一个错误,不远 够了

    我说你希望它下降,因为其他更近的物体更重要,你不想在更远的物体上浪费时间。如果你改变场景并决定“这个场景更稀疏,我可以承受更远的距离”然后在那个点增加它。

    这些值并不是任意的,更多的是当你决定你愿意跑多快/多慢时,它们会被调整。如果您的目标是 4K 60 FPS,您可能需要减小 FOV 和远距离。如果您只想要 720 30 FPS,您也许可以渲染场景中的所有内容。

    教程无法为您决定这些设置,因为他们不知道您将渲染什么或您将在什么硬件上渲染。

    另一件事是您的度量单位可能与其他一些实现非常不同。一个人近0.1/1000,另一个人1/10,000,000。

    例如,我认为Unreal has its average character height at 156 "units"。这个数字可能看起来真的很随机​​,但可能已经调整到很好地放置了很多浮点恶作剧。如果您刚刚开始,您可能会在 OpenGL 场景中放置一个立方体并将其设置为 1x1x1 尺寸。坐在您附近的那个立方体在 0.1/100 的相机视野范围内不适合,但虚幻角色不适合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      相关资源
      最近更新 更多