11import AnalyticLightNode from './AnalyticLightNode.js' ;
22import { normalWorld } from '../accessors/Normal.js' ;
33import { uniformArray } from '../accessors/UniformArrayNode.js' ;
4- import { Fn } from '../tsl/TSLBase.js' ;
5- import { mul } from '../math/OperatorNode.js' ;
64import { Vector3 } from '../../math/Vector3.js' ;
5+ import getShIrradianceAt from '../functions/material/getShIrradianceAt.js' ;
76
87class LightProbeNode extends AnalyticLightNode {
98
@@ -43,7 +42,7 @@ class LightProbeNode extends AnalyticLightNode {
4342
4443 setup ( builder ) {
4544
46- const irradiance = shGetIrradianceAt ( normalWorld , this . lightProbe ) ;
45+ const irradiance = getShIrradianceAt ( normalWorld , this . lightProbe ) ;
4746
4847 builder . context . irradiance . addAssign ( irradiance ) ;
4948
@@ -52,28 +51,3 @@ class LightProbeNode extends AnalyticLightNode {
5251}
5352
5453export default LightProbeNode ;
55-
56- const shGetIrradianceAt = /*@__PURE__ */ Fn ( ( [ normal , shCoefficients ] ) => {
57-
58- // normal is assumed to have unit length
59-
60- const x = normal . x , y = normal . y , z = normal . z ;
61-
62- // band 0
63- const result = shCoefficients . element ( 0 ) . mul ( 0.886227 ) ;
64-
65- // band 1
66- result . addAssign ( shCoefficients . element ( 1 ) . mul ( 2.0 * 0.511664 ) . mul ( y ) ) ;
67- result . addAssign ( shCoefficients . element ( 2 ) . mul ( 2.0 * 0.511664 ) . mul ( z ) ) ;
68- result . addAssign ( shCoefficients . element ( 3 ) . mul ( 2.0 * 0.511664 ) . mul ( x ) ) ;
69-
70- // band 2
71- result . addAssign ( shCoefficients . element ( 4 ) . mul ( 2.0 * 0.429043 ) . mul ( x ) . mul ( y ) ) ;
72- result . addAssign ( shCoefficients . element ( 5 ) . mul ( 2.0 * 0.429043 ) . mul ( y ) . mul ( z ) ) ;
73- result . addAssign ( shCoefficients . element ( 6 ) . mul ( z . mul ( z ) . mul ( 0.743125 ) . sub ( 0.247708 ) ) ) ;
74- result . addAssign ( shCoefficients . element ( 7 ) . mul ( 2.0 * 0.429043 ) . mul ( x ) . mul ( z ) ) ;
75- result . addAssign ( shCoefficients . element ( 8 ) . mul ( 0.429043 ) . mul ( mul ( x , x ) . sub ( mul ( y , y ) ) ) ) ;
76-
77- return result ;
78-
79- } ) ;
0 commit comments