浏览代码

Merge pull request #16757 from WestLangley/dev_sh3

SphericalHarmonics3: update methods
Mr.doob 6 年之前
父节点
当前提交
ce9cb035d8
共有 1 个文件被更改,包括 18 次插入18 次删除
  1. 18 18
      src/math/SphericalHarmonics3.js

+ 18 - 18
src/math/SphericalHarmonics3.js

@@ -64,19 +64,19 @@ Object.assign( SphericalHarmonics3.prototype, {
 		var coeff = this.coefficients;
 
 		// band 0
-		target = coeff[ 0 ] * 0.282095;
+		target.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );
 
 		// band 1
-		target += coeff[ 1 ] * 0.488603 * y;
-		target += coeff[ 2 ] * 0.488603 * z;
-		target += coeff[ 3 ] * 0.488603 * x;
+		target.addScale( coeff[ 1 ], 0.488603 * y );
+		target.addScale( coeff[ 2 ], 0.488603 * z );
+		target.addScale( coeff[ 3 ], 0.488603 * x );
 
 		// band 2
-		target += coeff[ 4 ] * 1.092548 * ( x * y );
-		target += coeff[ 5 ] * 1.092548 * ( y * z );
-		target += coeff[ 6 ] * 0.315392 * ( 3.0 * z * z - 1.0 );
-		target += coeff[ 7 ] * 1.092548 * ( x * z );
-		target += coeff[ 8 ] * 0.546274 * ( x * x - y * y );
+		target.addScale( coeff[ 4 ], 1.092548 * ( x * y ) );
+		target.addScale( coeff[ 5 ], 1.092548 * ( y * z ) );
+		target.addScale( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );
+		target.addScale( coeff[ 7 ], 1.092548 * ( x * z ) );
+		target.addScale( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );
 
 		return target;
 
@@ -94,19 +94,19 @@ Object.assign( SphericalHarmonics3.prototype, {
 		var coeff = this.coefficients;
 
 		// band 0
-		target = coeff[ 0 ] * 0.886227; // π * 0.282095
+		target.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095
 
 		// band 1
-		target += coeff[ 1 ] * 2.0 * 0.511664 * y; // ( 2 * π / 3 ) * 0.488603
-		target += coeff[ 2 ] * 2.0 * 0.511664 * z;
-		target += coeff[ 3 ] * 2.0 * 0.511664 * x;
+		target.addScale( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603
+		target.addScale( coeff[ 2 ], 2.0 * 0.511664 * z );
+		target.addScale( coeff[ 3 ], 2.0 * 0.511664 * x );
 
 		// band 2
-		target += coeff[ 4 ] * 2.0 * 0.429043 * x * y; // ( π / 4 ) * 1.092548
-		target += coeff[ 5 ] * 2.0 * 0.429043 * y * z;
-		target += coeff[ 6 ] * ( 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3
-		target += coeff[ 7 ] * 2.0 * 0.429043 * x * z;
-		target += coeff[ 8 ] * 0.429043 * ( x * x - y * y ); // ( π / 4 ) * 0.546274
+		target.addScale( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548
+		target.addScale( coeff[ 5 ], 2.0 * 0.429043 * y * z );
+		target.addScale( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3
+		target.addScale( coeff[ 7 ], 2.0 * 0.429043 * x * z );
+		target.addScale( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274
 
 		return target;