想象一个场景,其中有一个非常大的THREE.PlaneGeometry模拟地板,并且在场景中的任意位置添加了一个摄影机。
如果我手动调整雾的近处和远处的值,我可以以某种方式隐藏飞机的外部,使印象是无限的。到现在为止还好。
问题是,如果我让我的相机在场景中飞行到平面内的任意位置,会发生什么?如果随机点距离平面外部足够近,则雾不会遮蔽平面的末端,因为雾始终基于摄影机位置。
所以我的问题是,只有当你足够接近飞机的极限时,我们如何才能达到雾的效果?
发布于 2014-09-05 01:33:24
我对雾系统的工作原理没有足够深入的了解,所以如果有人能纠正我,那就太好了。
我猜雾只在相机上渲染,你不能将它应用于,比如说,一个对象,或者你也不能创建一个雾对象(例如,一个由雾产生的立方体),除非你使用着色器使对象看起来像“雾”,但是如果你进入这个对象,你将不能再看到雾(或者它将不会像预期的那样渲染)。
但是,您可以根据摄影机的位置动态更改雾渲染,距离中心越远,雾渲染的距离越接近摄影机。这很容易实现,只需做一个简单的减法(从平面中心到X的距离),其中X等于相机可以到达的最大距离。
在XY平面上到中心的距离也是很容易的事情,如果你把平面的中心定位在0,0,你就会自动知道相机所在的X和Y坐标。然后你可以只计算相对于X和Y轴的斜边(参见下面的gif)。

https://stackoverflow.com/questions/25642885
复制相似问题