and*_*cio 5 javascript three.js
想象一个场景,您有一个非常大的 THREE.PlaneGeometry 模拟地板,并且您有一个相机添加到场景中的随机位置。
如果我手动调整雾的近距和远距值,我可以以某种方式隐藏飞机的外部,给人一种无限的印象。到目前为止,一切都很好。
问题是,如果我让相机在场景中飞到飞机内的随机位置会怎样?如果随机点距离飞机外部足够近,则雾不会掩盖飞机的末端,因为雾始终基于相机位置。
所以我的问题是,只有当你足够接近飞机的极限时,我们如何才能实现雾效果?
我对雾系统的工作原理没有足够深入的了解,所以如果有人能纠正我,那就太棒了。
我猜雾只能在相机上渲染,你不能将其应用于一个对象,或者你不能创建雾对象(例如由雾制成的立方体),除非你使用可以使对象看起来像“雾”的着色器,但是如果您进入该对象,您将无法再看到雾(或者它不会按预期渲染)
然而,您可以做的是根据相机位置动态更改雾渲染,距离中心越远,雾渲染离相机越近。通过进行简单的减法(X - 距平面中心的距离),这很容易实现,其中 X 等于相机可以到达的最大距离。
距 XY 平面上中心的距离也很容易,如果将平面中心定位在 0,0 处,您就会自动知道相机所在的 X 和 Y 坐标。然后你可以计算相对于 X 和 Y 轴的斜边(见下面我的 gif)。
归档时间: |
|
查看次数: |
2208 次 |
最近记录: |