我使用three.js(3d视觉编程javascript)为我的场景添加雾。这是一个太空场景。逻辑是,当相机移向太阳时,黄色的薄雾变浓,这就产生了一种错觉,即太空越近,太阳就越亮。当你离开它时,它恰恰相反。这实际上是必须添加两个雾,它们在我使用其中一个时都起作用,但从不同时起作用。
我试图创建一个条件语句,根据相机的位置确定要激活的雾,看到雾效果只有在相机接近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);