UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

43 lines (42 loc) 1.8 kB
"use strict"; 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; } }