EDIT: Вы не можете добавить FOG после визуализации сцены, потому что он должен выполнять вычисления с шейдерами.Используя THREEJS, я пытаюсь переключиться на туман в сцене
- ЕСЛИ вы это сделаете, это покажет машину, потому что все шейдеры должны быть перезаписаны.
- ЕСЛИ ВЫ НУЖНЫ туман, лучше вычислить, если вы визуализируете его с туманом, но установите плотность на 0 (или 0,01), чтобы таким образом не было реального видимого тумана. Хорошей причиной для этого является то, что вычисления FOG являются СОЗДАННЫМИ, вам просто нужно будет регулировать плотность и загружать страницу.
ТОК ПЛАН: Мне нужно, чтобы выяснить, как изменить плотности. Я просматриваю объект FOG и сцену, чтобы увидеть, что я могу найти.
Оригинал Вопрос:
У меня есть тумблер включения/выключения, что при нажатии, предполагают, чтобы добавить/удалить туман со сцены, но кажется, что оно не добавить любой туман на сцену. Я запускаю scene.fog на консоли, чтобы увидеть, что у него это есть.
Я подумал, что мы могли бы просто добавить и удалить его, как то, что я сделал. Есть ли что-то другое, которое зависит от реализации тумана? Я пытался работать с http://mrdoob.github.io/three.js/examples/webgl_materials_cubemap_dynamic.html, чтобы увидеть, как работает туман, но я не видел никаких других строк, чем то, что я сделал. MAYBE Мне нужно сделать какое-то обновление сцены после настройки сцены, как я?
function toggledata(){
var toggle = $(this).val(); // 'on' or 'off'
if (toggle == 'on')
{
scene.fog = new THREE.Fog(0xffffff, 10, 60);
scene.fog.color.setHSL(0.51, 0.6, 0.6);
}
else if (toggle == 'off')
{
scene.fog = null;
}
}
//GLOBALS
var scene, container, etc.
function init()
{
container = $('#MODELDIV');
// SCENE
scene = new THREE.Scene();
// CAMERA
var SCREEN_WIDTH = container.width();
var SCREEN_HEIGHT = container.height();
var VIEW_ANGLE = 45;
var ASPECT = SCREEN_WIDTH/SCREEN_HEIGHT;
var NEAR = 0.1;
var FAR = 20000000;
camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR);
scene.add(camera);
camera.position.set(3043.0732, 98.8883, 141.0916);
camera.lookAt(3043.0732, 98.8883, 41.0916);
//CAMERA_LIST.push(camera);
renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
renderer.setClearColor(0x000000);
renderer.sortObjects = true;
container.append(renderer.domElement);
controls = new THREE.OrbitControls(camera, renderer.domElement);
var directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(1, 1, 1).normalize();
scene.add(directionalLight);
LIGHT_LIST.push(directionalLight);
var ambientLight = new THREE.AmbientLight(0xbbbbbb);
}
Положите эту попытку на настоящую оперативность, чтобы подтвердить, и немного потрудились создать туман – Fallenreaper