Spaces:
Running
Running
File size: 867 Bytes
2b7aae2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import { Color } from '../math/Color.js';
import { Vector3 } from '../math/Vector3.js';
import { LightProbe } from './LightProbe.js';
class HemisphereLightProbe extends LightProbe {
constructor(skyColor, groundColor, intensity = 1) {
super(undefined, intensity);
const color1 = new Color().set(skyColor);
const color2 = new Color().set(groundColor);
const sky = new Vector3(color1.r, color1.g, color1.b);
const ground = new Vector3(color2.r, color2.g, color2.b);
// without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );
const c0 = Math.sqrt(Math.PI);
const c1 = c0 * Math.sqrt(0.75);
this.sh.coefficients[0].copy(sky).add(ground).multiplyScalar(c0);
this.sh.coefficients[1].copy(sky).sub(ground).multiplyScalar(c1);
}
}
HemisphereLightProbe.prototype.isHemisphereLightProbe = true;
export { HemisphereLightProbe };
|