| Server IP : 210.245.233.93 / Your IP : 216.73.216.226 Web Server : Apache/2.2.15 (CentOS) System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 User : apache ( 48) PHP Version : 5.3.3 Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/hkosl.com/3dweb/src/lights/ |
Upload File : |
/**
* @author WestLangley / http://github.com/WestLangley
*/
import { Color } from '../math/Color.js';
import { Vector3 } from '../math/Vector3.js';
import { LightProbe } from './LightProbe.js';
function HemisphereLightProbe( skyColor, groundColor, intensity ) {
LightProbe.call( this, undefined, intensity );
var color1 = new Color().set( skyColor );
var color2 = new Color().set( groundColor );
var sky = new Vector3( color1.r, color1.g, color1.b );
var ground = new Vector3( color2.r, color2.g, color2.b );
// without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );
var c0 = Math.sqrt( Math.PI );
var 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 = Object.assign( Object.create( LightProbe.prototype ), {
constructor: HemisphereLightProbe,
isHemisphereLightProbe: true,
copy: function ( source ) { // modifying colors not currently supported
LightProbe.prototype.copy.call( this, source );
return this;
},
toJSON: function ( meta ) {
var data = LightProbe.prototype.toJSON.call( this, meta );
// data.sh = this.sh.toArray(); // todo
return data;
}
} );
export { HemisphereLightProbe };