|
@@ -121,6 +121,7 @@ function WebGLLights() {
|
|
},
|
|
},
|
|
|
|
|
|
ambient: [ 0, 0, 0 ],
|
|
ambient: [ 0, 0, 0 ],
|
|
|
|
+ probe: [],
|
|
directional: [],
|
|
directional: [],
|
|
directionalShadowMap: [],
|
|
directionalShadowMap: [],
|
|
directionalShadowMatrix: [],
|
|
directionalShadowMatrix: [],
|
|
@@ -135,6 +136,8 @@ function WebGLLights() {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ for ( var i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );
|
|
|
|
+
|
|
var vector3 = new Vector3();
|
|
var vector3 = new Vector3();
|
|
var matrix4 = new Matrix4();
|
|
var matrix4 = new Matrix4();
|
|
var matrix42 = new Matrix4();
|
|
var matrix42 = new Matrix4();
|
|
@@ -143,6 +146,8 @@ function WebGLLights() {
|
|
|
|
|
|
var r = 0, g = 0, b = 0;
|
|
var r = 0, g = 0, b = 0;
|
|
|
|
|
|
|
|
+ for ( var i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );
|
|
|
|
+
|
|
var directionalLength = 0;
|
|
var directionalLength = 0;
|
|
var pointLength = 0;
|
|
var pointLength = 0;
|
|
var spotLength = 0;
|
|
var spotLength = 0;
|
|
@@ -167,6 +172,14 @@ function WebGLLights() {
|
|
g += color.g * intensity;
|
|
g += color.g * intensity;
|
|
b += color.b * intensity;
|
|
b += color.b * intensity;
|
|
|
|
|
|
|
|
+ } else if ( light.isLightProbe ) {
|
|
|
|
+
|
|
|
|
+ for ( var j = 0; j < 9; j ++ ) {
|
|
|
|
+
|
|
|
|
+ state.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
} else if ( light.isDirectionalLight ) {
|
|
} else if ( light.isDirectionalLight ) {
|
|
|
|
|
|
var uniforms = cache.get( light );
|
|
var uniforms = cache.get( light );
|