@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
43 lines (42 loc) • 1.8 kB
JavaScript
;
import { LightUserDataRaymarching } from "./../../../../core/lights/Common";
export var LightType = /* @__PURE__ */ ((LightType2) => {
LightType2[LightType2["SPOT"] = 0] = "SPOT";
LightType2[LightType2["DIRECTIONAL"] = 1] = "DIRECTIONAL";
LightType2[LightType2["HEMISPHERE"] = 2] = "HEMISPHERE";
LightType2[LightType2["POINT"] = 3] = "POINT";
return LightType2;
})(LightType || {});
export function getLightType(object) {
if (object.isSpotLight) {
return 0 /* SPOT */;
}
if (object.isDirectionalLight) {
return 1 /* DIRECTIONAL */;
}
if (object.isHemisphereLight) {
return 2 /* HEMISPHERE */;
}
if (object.isPointLight) {
return 3 /* POINT */;
}
}
export function updateUserDataPenumbra(object, uniforms, index, defaultUniformCreate) {
uniforms.value[index] = uniforms.value[index] || defaultUniformCreate();
const uniformName = LightUserDataRaymarching.PENUMBRA;
if (uniforms.value[index].penumbra != object.userData[uniformName]) {
uniforms.value[index].penumbra = object.userData[uniformName];
uniforms.value.needsUpdate = true;
}
}
export function updateUserDataShadowBias(object, uniforms, index, defaultUniformCreate) {
uniforms.value[index] = uniforms.value[index] || defaultUniformCreate();
if (uniforms.value[index].shadowBiasAngle != object.userData[LightUserDataRaymarching.SHADOW_BIAS_ANGLE]) {
uniforms.value[index].shadowBiasAngle = object.userData[LightUserDataRaymarching.SHADOW_BIAS_ANGLE];
uniforms.value.needsUpdate = true;
}
if (uniforms.value[index].shadowBiasDistance != object.userData[LightUserDataRaymarching.SHADOW_BIAS_DISTANCE]) {
uniforms.value[index].shadowBiasDistance = object.userData[LightUserDataRaymarching.SHADOW_BIAS_DISTANCE];
uniforms.value.needsUpdate = true;
}
}