lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
16 lines • 755 B
JavaScript
import { deg2Rad } from "@lincode/math";
import getWorldPosition from "../memo/getWorldPosition";
import { CM2M } from "../globals";
import createInternalSystem from "./utils/createInternalSystem";
export const volumetricSpotLightSystem = createInternalSystem("volumetricSpotLightSystem", {
data: {},
update: (cone, { light, material }) => {
cone.scale.y = light.distance * CM2M * light.volumetricDistance;
cone.position.y = -cone.scale.y * 0.5;
cone.scale.x = cone.scale.z =
2 * Math.tan(light.angle * deg2Rad) * cone.scale.y;
material.attenuation = cone.scale.y;
material.spotPosition.copy(getWorldPosition(light.outerObject3d));
}
});
//# sourceMappingURL=volumetricSpotLightSystem.js.map