gpt4 book ai didi

javascript - Three.js 雾可以应用于区域而不是与相机的距离吗?

转载 作者:行者123 更新时间:2023-11-29 10:42:45 27 4
gpt4 key购买 nike

想象一个场景,您有一个非常大的 THREE.PlaneGeometry 模拟地板,并且您在场景中的随机位置添加了一个相机。

如果我手动调整雾的近距和远距值,我可以以某种方式隐藏平面的外部,给人一种无限的印象。到目前为止,还不错。

问题是,如果我让我的相机绕场景飞行到平面内的随机位置会怎样?如果随机点离飞机的外侧足够近,雾就不会掩盖飞机的末端,因为雾总是基于相机位置。

所以我的问题是,只有当你足够接近飞机的极限时,我们如何才能实现雾化效果?

最佳答案

我对雾系统的工作原理没有足够深入的了解,所以如果有人能纠正我,那就太棒了。

我想雾只能在相机上渲染,你不能将它应用到一个对象,或者你不能创建一个雾对象(例如由雾制成的立方体),除非你使用可以使对象看起来像的着色器“雾”,但是如果你进入对象,你将无法再看到雾(或者它不会按预期呈现)

然而,您可以做的是根据您的相机位置动态更改雾渲染,离中心越远,雾渲染越靠近相机。这很容易通过做一个简单的减法(X - 到平面中心的距离)来实现,其中 X 等于相机可以达到的最大距离。

在 XY 平面上距中心的距离也很容易,如果您将平面的中心定位在 0,0,您会自动知道相机所在的 X 和 Y 坐标。然后你可以计算相对于 X 和 Y 轴的斜边(见下面我的 gif)。

Hypotenuse on XY

关于javascript - Three.js 雾可以应用于区域而不是与相机的距离吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25642885/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com