向场景添加雾

Joh*_*ael 5 javascript three.js

我正在使用three.js(3D视觉编程javascript)向场景添加雾气。这是一个太空场景。逻辑是,当照相机朝着太阳移动时,黄色的雾会变浓,从而产生一种幻觉,即您越靠近太阳,空间就会越亮。当您远离它时,情况恰恰相反。这本质上是必须添加两个雾,当我使用一个或另一个时,它们都可以工作,但绝不能同时使用。

我正在尝试创建一个条件语句,根据相机的z位置确定要激活哪个雾,看到雾效果仅在相机位于1000(像素吗?)或附近时才可见。 。

该语句仅适用于1号雾条件,不适用于2号雾条件。我在这里做错了什么?可能是因为默认的camera.position.z已经在1000以内了吗?然后,如何使用当前位置而不是默认位置。在一个场景中有两次雾完全可以吗?

谢谢。

if (camera.position.z < 1000) { 
  /* Fog condition #1:   the farther away, the darker it gets */
  var varColor = 0xffff00;
  var varNear = 800;
  var varFar = 5;
} else if (camera.position.z > 1000) {
  /* Fog condition #2:    the closer to the sun object, the lighter it gets */
  var varColor = 0x000000;
  var varNear = 50;
  var varFar = 7000;
}

scene.fog = new THREE.Fog( varColor, varNear, varFar);
Run Code Online (Sandbox Code Playgroud)