UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

34 lines (31 loc) 1.16 kB
import { Vec2 } from '../../core/math/vec2.js'; import { random } from '../../core/math/random.js'; import { LIGHTTYPE_DIRECTIONAL } from '../../scene/constants.js'; import { BakeLight } from './bake-light.js'; var _tempPoint = new Vec2(); class BakeLightSimple extends BakeLight { get numVirtualLights() { if (this.light.type === LIGHTTYPE_DIRECTIONAL) { return this.light.bakeNumSamples; } return 1; } prepareVirtualLight(index, numVirtualLights) { var light = this.light; light._node.setLocalRotation(this.rotation); if (index > 0) { var directionalSpreadAngle = light.bakeArea; random.circlePointDeterministic(_tempPoint, index, numVirtualLights); _tempPoint.mulScalar(directionalSpreadAngle * 0.5); light._node.rotateLocal(_tempPoint.x, 0, _tempPoint.y); } light._node.getWorldTransform(); var gamma = 2.2; var linearIntensity = Math.pow(this.intensity, gamma); light.intensity = Math.pow(linearIntensity / numVirtualLights, 1 / gamma); } constructor(lightmapper, light){ super(lightmapper.scene, light, lightmapper.lightingParams); } } export { BakeLightSimple };