UNPKG

mylingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

35 lines 1.41 kB
import { lazy } from "@lincode/utils"; import { getSkyShaderOptions } from "../states/useSkyShaderOptions"; import { Sky } from "three/examples/jsm/objects/Sky"; import scene from "./scene"; import { getSkyShader } from "../states/useSkyShader"; import { vector3 } from "../display/utils/reusables"; const lazySky = lazy(() => { const sky = new Sky(); sky.scale.setScalar(450000); getSkyShaderOptions((effectController) => { const { uniforms } = sky.material; uniforms["turbidity"].value = effectController.turbidity; uniforms["rayleigh"].value = effectController.rayleigh; uniforms["mieCoefficient"].value = effectController.mieCoefficient; uniforms["mieDirectionalG"].value = effectController.mieDirectionalG; const theta = Math.PI * (effectController.inclination - 0.5); const phi = 2 * Math.PI * (effectController.azimuth - 0.5); vector3.x = Math.cos(phi); vector3.y = Math.sin(phi) * Math.sin(theta); vector3.z = Math.sin(phi) * Math.cos(theta); uniforms["sunPosition"].value.copy(vector3); }); return sky; }); let enabledOld = false; getSkyShader((enabled) => { if (enabledOld === enabled) return; enabledOld = enabled; if (enabled) scene.add(lazySky()); else scene.remove(lazySky()); }); //# sourceMappingURL=skyShader.js.map