diff --git a/src/main/mesh.js b/src/main/mesh.js index 3a096708..fe96a412 100644 --- a/src/main/mesh.js +++ b/src/main/mesh.js @@ -33,11 +33,11 @@ function init() { // setup default workspace space.useDefaultKeys(false); + space.init($('container'), delta => { }, ortho); space.sky.set({ grid: false, color: dark ? 0 : 0xffffff }); - space.init($('container'), delta => { }, ortho); platform.set({ volume: false, round: false, @@ -474,7 +474,10 @@ function set_darkmode(dark) { mesh.material.wireframe.color.set(0,0,0); $('app').classList.remove('dark'); } - sky.set({ color: dark ? 0 : 0xffffff }); + sky.set({ + color: dark ? 0 : 0xffffff, + ambient: { intensity: dark ? 0.6 : 1 } + }); platform.set({ grid: dark ? { colorMajor: 0x666666, diff --git a/src/moto/space.js b/src/moto/space.js index 9110a981..d9771d76 100644 --- a/src/moto/space.js +++ b/src/moto/space.js @@ -35,6 +35,7 @@ lightIntensity = 0.3, initialized = false, alignedTracking = false, + skyAmbient, skyGridColor = 0xcccccc, skyMaterial = undefined, skyGridMaterial = undefined, @@ -923,6 +924,11 @@ if (grid) Space.sky.showGrid(grid); if (color !== undefined) Space.sky.setColor(color); if (gridColor !== undefined) Space.sky.setGridColor(gridColor); + if (skyAmbient && opt.ambient) { + let { color, intensity } = opt.ambient; + if (color) skyAmbient.color.set(color); + if (intensity) skyAmbient.intensity = intensity; + } } function setPlatform(opt = {}) { @@ -1186,7 +1192,7 @@ viewControl.noKeys = true; viewControl.maxDistance = 1000; - SCENE.add(new THREE.AmbientLight(0x707070)); + SCENE.add(skyAmbient = new THREE.AmbientLight(0x707070)); light1 = addLight( 200, 250, 200, lightIntensity * 1.15); light2 = addLight(-200, 250, -200, lightIntensity * 0.95);