Я пытаюсь, чтобы мой skybox не был затронут параметром camera.far
. Я хотел бы отбросить все другие объекты сцены с этим, а не с skybox.Three.js Unculled SkyBox
Когда я установил skyBox.frustumCulled = false;
, это не имеет значения. skyBox
быть сеткой конечно.
Это делается путем добавления другого шага визуализации? Если это так, мне понадобится две разные камеры с очень высоким значением, позволяющим просматривать Skybox правильно? Как это можно сделать эффективно?
Для ясности здесь есть отрывок из моей местности объектного кода используется для рисования скайбокса:
shader = THREE.ShaderLib["cube"];
shader.uniforms["tCube"].value = this.cubetexture;
mat = new THREE.ShaderMaterial({
uniforms: shader.uniforms,
fragmentShader: shader.fragmentShader,
vertexShader: shader.vertexShader,
depthWrite: false,
side: THREE.BackSide
});
geo = new THREE.BufferGeometry().fromGeometry(new THREE.BoxGeometry(1024, 1024, 1024));
mesh = new THREE.Mesh(geo, mat);
mesh.rotation.y += 90;
mesh.scale.x = mesh.scale.y = mesh.scale.z = 50;
mesh.frustumCulled = false;
mesh.matrixAutoUpdate = false;
mesh.rotationAutoUpdate = false;
mesh.updateMatrix();
this.skybox = mesh;
scene.add(this.skybox);
Вау! Выглядит потрясающе, я не могу дождаться, когда попробую, когда я вернусь домой =] – Hobbes
Хм, отличный ответ, но почему-то, внедрив свой код, я обнаружил, что только мой skybox визуализируется :( –