雾隐藏天空盒(THREE.JS R76)
问题描述:
我有一个圆筒相机保持英寸我设置了雾,所以管的末端是不可见的 - 但是我希望天空盒通过阿尔法映射两侧可见圆柱体。雾阻挡了能见度,并且想知道需要做些什么来解决这个问题。雾隐藏天空盒(THREE.JS R76)
var POS_X = 0,
POS_Y = 0,
POS_Z = 0,
FOV = 60,
WIDTH = window.innerWidth,
HEIGHT = window.innerHeight,
NEAR = 1,
FAR = 120000, //Camera Far Distance
renderer = new THREE.WebGLRenderer({antialias:true}),
............
function addFog(){
scene.fog = new THREE.Fog(0x000000, 100, 40000);
}
............
function addSkybox(){
var materialArray = [],
imgArray = ["skybox_right.jpg", "skybox_left.jpg",
"skybox_front.jpg", "skybox_back.jpg",
"skybox_top.jpg", "skybox_bottom.jpg"];
for (var i = 0; i < 6; i++){
materialArray.push(new THREE.MeshBasicMaterial({
map: loader.load(imgArray[i]),
side: THREE.BackSide
}));
}
var skyMat = new THREE.MeshFaceMaterial(materialArray),
skyGeo = new THREE.BoxGeometry(100000, 100000, 100000, 1, 1, 1),
sky = new THREE.Mesh(skyGeo, skyMat);
sky.name="skybox";
scene.add(sky);
}
答
你可以只添加fog: false
忽略雾效应。
for (var i = 0; i < 6; i++){
materialArray.push(new THREE.MeshBasicMaterial({
map: loader.load(imgArray[i]),
side: THREE.BackSide,
fog: false
}));
}
+0
谢谢你非常有见地。正是我在找什么! –
您是否曾试图将天空盒分成6个不同的物体,这样他们就不会受到雾的影响? '.far' _雾停止计算和应用的最大距离。超过“远”单位的物体远离活动摄像机不会受到雾的影响 –
嗯,我想我对这个措辞感到困惑。我将Meshes添加到场景中,并且它们是对象,但不是Object3D。似乎如果我把天空盒作为一个对象3D它会工作呢?我将不得不尽快尝试。 –
因此,我将天空盒作为一个单独的物体3D添加到了场景中。圆柱体也被添加为一个单独的物体3D。没有变化。 –