浏览代码

make matrix3 also use Float32Array

ide user ide_gero3 13 年之前
父节点
当前提交
34b6bc6ef5
共有 7 个文件被更改,包括 122 次插入110 次删除
  1. 23 21
      build/Three.js
  2. 18 16
      build/custom/ThreeCanvas.js
  3. 18 16
      build/custom/ThreeDOM.js
  4. 18 16
      build/custom/ThreeSVG.js
  5. 23 21
      build/custom/ThreeWebGL.js
  6. 17 15
      src/core/Matrix3.js
  7. 5 5
      src/renderers/WebGLRenderer.js

+ 23 - 21
build/Three.js

@@ -1565,7 +1565,7 @@ THREE.Math = {
 
 THREE.Matrix3 = function () {
 
-	this.m = [];
+	this.elements = new Float32Array(9);
 
 };
 
@@ -1578,17 +1578,19 @@ THREE.Matrix3.prototype = {
 		// input: THREE.Matrix4
 		// ( based on http://code.google.com/p/webgl-mjs/ )
 
-		var a11 =   matrix.elements[10] * matrix.elements[5] - matrix.elements[6] * matrix.elements[9];
-		var a21 = - matrix.elements[10] * matrix.elements[1] + matrix.elements[2] * matrix.elements[9];
-		var a31 =   matrix.elements[6] * matrix.elements[1] - matrix.elements[2] * matrix.elements[5];
-		var a12 = - matrix.elements[10] * matrix.elements[4] + matrix.elements[6] * matrix.elements[8];
-		var a22 =   matrix.elements[10] * matrix.elements[0] - matrix.elements[2] * matrix.elements[8];
-		var a32 = - matrix.elements[6] * matrix.elements[0] + matrix.elements[2] * matrix.elements[4];
-		var a13 =   matrix.elements[9] * matrix.elements[4] - matrix.elements[5] * matrix.elements[8];
-		var a23 = - matrix.elements[9] * matrix.elements[0] + matrix.elements[1] * matrix.elements[8];
-		var a33 =   matrix.elements[5] * matrix.elements[0] - matrix.elements[1] * matrix.elements[4];
-
-		var det = matrix.elements[0] * a11 + matrix.elements[1] * a12 + matrix.elements[2] * a13;
+        var me = matrix.elements;
+        
+		var a11 =   me[10] * me[5] - me[6] * me[9];
+		var a21 = - me[10] * me[1] + me[2] * me[9];
+		var a31 =   me[6] * me[1] - me[2] * me[5];
+		var a12 = - me[10] * me[4] + me[6] * me[8];
+		var a22 =   me[10] * me[0] - me[2] * me[8];
+		var a32 = - me[6] * me[0] + me[2] * me[4];
+		var a13 =   me[9] * me[4] - me[5] * me[8];
+		var a23 = - me[9] * me[0] + me[1] * me[8];
+		var a33 =   me[5] * me[0] - me[1] * me[4];
+
+		var det = me[0] * a11 + me[1] * a12 + me[2] * a13;
 
 		// no inverse
 
@@ -1600,7 +1602,7 @@ THREE.Matrix3.prototype = {
 
 		var idet = 1.0 / det;
 
-		var m = this.m;
+		var m = this.elements;
 
 		m[ 0 ] = idet * a11; m[ 1 ] = idet * a21; m[ 2 ] = idet * a31;
 		m[ 3 ] = idet * a12; m[ 4 ] = idet * a22; m[ 5 ] = idet * a32;
@@ -1610,10 +1612,10 @@ THREE.Matrix3.prototype = {
 
 	},
 
-	/*
+	
 	transpose: function () {
 
-		var tmp, m = this.m;
+		var tmp, m = this.elements;
 
 		tmp = m[1]; m[1] = m[3]; m[3] = tmp;
 		tmp = m[2]; m[2] = m[6]; m[6] = tmp;
@@ -1622,7 +1624,7 @@ THREE.Matrix3.prototype = {
 		return this;
 
 	},
-	*/
+	
 
 	transposeIntoArray: function ( r ) {
 
@@ -13883,9 +13885,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 			object._modelViewMatrix = new THREE.Matrix4();
 			object._normalMatrix = new THREE.Matrix3();
 
-			object._normalMatrixArray = new Float32Array( 9 );
-			object._modelViewMatrixArray = new Float32Array( 16 );
-			object._objectMatrixArray = new Float32Array( 16 );
+			//object._normalMatrixArray = new Float32Array( 9 );
+			//object._modelViewMatrixArray = new Float32Array( 16 );
+			//object._objectMatrixArray = new Float32Array( 16 );
 
 			//object.matrixWorld.flattenToArray( object._objectMatrixArray );
 
@@ -14767,7 +14769,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		if ( uniforms.normalMatrix ) {
 
-			_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrixArray );
+			_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrix.elements );
 
 		}
 
@@ -14996,7 +14998,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 		object._modelViewMatrix.multiply( camera.matrixWorldInverse, object.matrixWorld);
 
 		object._normalMatrix.getInverse( object._modelViewMatrix );
-		object._normalMatrix.transposeIntoArray( object._normalMatrixArray );
+		object._normalMatrix.transpose();
 
 	};
 

+ 18 - 16
build/custom/ThreeCanvas.js

@@ -1501,7 +1501,7 @@ THREE.Math = {
 
 THREE.Matrix3 = function () {
 
-	this.m = [];
+	this.elements = new Float32Array(9);
 
 };
 
@@ -1514,17 +1514,19 @@ THREE.Matrix3.prototype = {
 		// input: THREE.Matrix4
 		// ( based on http://code.google.com/p/webgl-mjs/ )
 
-		var a11 =   matrix.elements[10] * matrix.elements[5] - matrix.elements[6] * matrix.elements[9];
-		var a21 = - matrix.elements[10] * matrix.elements[1] + matrix.elements[2] * matrix.elements[9];
-		var a31 =   matrix.elements[6] * matrix.elements[1] - matrix.elements[2] * matrix.elements[5];
-		var a12 = - matrix.elements[10] * matrix.elements[4] + matrix.elements[6] * matrix.elements[8];
-		var a22 =   matrix.elements[10] * matrix.elements[0] - matrix.elements[2] * matrix.elements[8];
-		var a32 = - matrix.elements[6] * matrix.elements[0] + matrix.elements[2] * matrix.elements[4];
-		var a13 =   matrix.elements[9] * matrix.elements[4] - matrix.elements[5] * matrix.elements[8];
-		var a23 = - matrix.elements[9] * matrix.elements[0] + matrix.elements[1] * matrix.elements[8];
-		var a33 =   matrix.elements[5] * matrix.elements[0] - matrix.elements[1] * matrix.elements[4];
-
-		var det = matrix.elements[0] * a11 + matrix.elements[1] * a12 + matrix.elements[2] * a13;
+        var me = matrix.elements;
+        
+		var a11 =   me[10] * me[5] - me[6] * me[9];
+		var a21 = - me[10] * me[1] + me[2] * me[9];
+		var a31 =   me[6] * me[1] - me[2] * me[5];
+		var a12 = - me[10] * me[4] + me[6] * me[8];
+		var a22 =   me[10] * me[0] - me[2] * me[8];
+		var a32 = - me[6] * me[0] + me[2] * me[4];
+		var a13 =   me[9] * me[4] - me[5] * me[8];
+		var a23 = - me[9] * me[0] + me[1] * me[8];
+		var a33 =   me[5] * me[0] - me[1] * me[4];
+
+		var det = me[0] * a11 + me[1] * a12 + me[2] * a13;
 
 		// no inverse
 
@@ -1536,7 +1538,7 @@ THREE.Matrix3.prototype = {
 
 		var idet = 1.0 / det;
 
-		var m = this.m;
+		var m = this.elements;
 
 		m[ 0 ] = idet * a11; m[ 1 ] = idet * a21; m[ 2 ] = idet * a31;
 		m[ 3 ] = idet * a12; m[ 4 ] = idet * a22; m[ 5 ] = idet * a32;
@@ -1546,10 +1548,10 @@ THREE.Matrix3.prototype = {
 
 	},
 
-	/*
+	
 	transpose: function () {
 
-		var tmp, m = this.m;
+		var tmp, m = this.elements;
 
 		tmp = m[1]; m[1] = m[3]; m[3] = tmp;
 		tmp = m[2]; m[2] = m[6]; m[6] = tmp;
@@ -1558,7 +1560,7 @@ THREE.Matrix3.prototype = {
 		return this;
 
 	},
-	*/
+	
 
 	transposeIntoArray: function ( r ) {
 

+ 18 - 16
build/custom/ThreeDOM.js

@@ -1501,7 +1501,7 @@ THREE.Math = {
 
 THREE.Matrix3 = function () {
 
-	this.m = [];
+	this.elements = new Float32Array(9);
 
 };
 
@@ -1514,17 +1514,19 @@ THREE.Matrix3.prototype = {
 		// input: THREE.Matrix4
 		// ( based on http://code.google.com/p/webgl-mjs/ )
 
-		var a11 =   matrix.elements[10] * matrix.elements[5] - matrix.elements[6] * matrix.elements[9];
-		var a21 = - matrix.elements[10] * matrix.elements[1] + matrix.elements[2] * matrix.elements[9];
-		var a31 =   matrix.elements[6] * matrix.elements[1] - matrix.elements[2] * matrix.elements[5];
-		var a12 = - matrix.elements[10] * matrix.elements[4] + matrix.elements[6] * matrix.elements[8];
-		var a22 =   matrix.elements[10] * matrix.elements[0] - matrix.elements[2] * matrix.elements[8];
-		var a32 = - matrix.elements[6] * matrix.elements[0] + matrix.elements[2] * matrix.elements[4];
-		var a13 =   matrix.elements[9] * matrix.elements[4] - matrix.elements[5] * matrix.elements[8];
-		var a23 = - matrix.elements[9] * matrix.elements[0] + matrix.elements[1] * matrix.elements[8];
-		var a33 =   matrix.elements[5] * matrix.elements[0] - matrix.elements[1] * matrix.elements[4];
-
-		var det = matrix.elements[0] * a11 + matrix.elements[1] * a12 + matrix.elements[2] * a13;
+        var me = matrix.elements;
+        
+		var a11 =   me[10] * me[5] - me[6] * me[9];
+		var a21 = - me[10] * me[1] + me[2] * me[9];
+		var a31 =   me[6] * me[1] - me[2] * me[5];
+		var a12 = - me[10] * me[4] + me[6] * me[8];
+		var a22 =   me[10] * me[0] - me[2] * me[8];
+		var a32 = - me[6] * me[0] + me[2] * me[4];
+		var a13 =   me[9] * me[4] - me[5] * me[8];
+		var a23 = - me[9] * me[0] + me[1] * me[8];
+		var a33 =   me[5] * me[0] - me[1] * me[4];
+
+		var det = me[0] * a11 + me[1] * a12 + me[2] * a13;
 
 		// no inverse
 
@@ -1536,7 +1538,7 @@ THREE.Matrix3.prototype = {
 
 		var idet = 1.0 / det;
 
-		var m = this.m;
+		var m = this.elements;
 
 		m[ 0 ] = idet * a11; m[ 1 ] = idet * a21; m[ 2 ] = idet * a31;
 		m[ 3 ] = idet * a12; m[ 4 ] = idet * a22; m[ 5 ] = idet * a32;
@@ -1546,10 +1548,10 @@ THREE.Matrix3.prototype = {
 
 	},
 
-	/*
+	
 	transpose: function () {
 
-		var tmp, m = this.m;
+		var tmp, m = this.elements;
 
 		tmp = m[1]; m[1] = m[3]; m[3] = tmp;
 		tmp = m[2]; m[2] = m[6]; m[6] = tmp;
@@ -1558,7 +1560,7 @@ THREE.Matrix3.prototype = {
 		return this;
 
 	},
-	*/
+	
 
 	transposeIntoArray: function ( r ) {
 

+ 18 - 16
build/custom/ThreeSVG.js

@@ -1501,7 +1501,7 @@ THREE.Math = {
 
 THREE.Matrix3 = function () {
 
-	this.m = [];
+	this.elements = new Float32Array(9);
 
 };
 
@@ -1514,17 +1514,19 @@ THREE.Matrix3.prototype = {
 		// input: THREE.Matrix4
 		// ( based on http://code.google.com/p/webgl-mjs/ )
 
-		var a11 =   matrix.elements[10] * matrix.elements[5] - matrix.elements[6] * matrix.elements[9];
-		var a21 = - matrix.elements[10] * matrix.elements[1] + matrix.elements[2] * matrix.elements[9];
-		var a31 =   matrix.elements[6] * matrix.elements[1] - matrix.elements[2] * matrix.elements[5];
-		var a12 = - matrix.elements[10] * matrix.elements[4] + matrix.elements[6] * matrix.elements[8];
-		var a22 =   matrix.elements[10] * matrix.elements[0] - matrix.elements[2] * matrix.elements[8];
-		var a32 = - matrix.elements[6] * matrix.elements[0] + matrix.elements[2] * matrix.elements[4];
-		var a13 =   matrix.elements[9] * matrix.elements[4] - matrix.elements[5] * matrix.elements[8];
-		var a23 = - matrix.elements[9] * matrix.elements[0] + matrix.elements[1] * matrix.elements[8];
-		var a33 =   matrix.elements[5] * matrix.elements[0] - matrix.elements[1] * matrix.elements[4];
-
-		var det = matrix.elements[0] * a11 + matrix.elements[1] * a12 + matrix.elements[2] * a13;
+        var me = matrix.elements;
+        
+		var a11 =   me[10] * me[5] - me[6] * me[9];
+		var a21 = - me[10] * me[1] + me[2] * me[9];
+		var a31 =   me[6] * me[1] - me[2] * me[5];
+		var a12 = - me[10] * me[4] + me[6] * me[8];
+		var a22 =   me[10] * me[0] - me[2] * me[8];
+		var a32 = - me[6] * me[0] + me[2] * me[4];
+		var a13 =   me[9] * me[4] - me[5] * me[8];
+		var a23 = - me[9] * me[0] + me[1] * me[8];
+		var a33 =   me[5] * me[0] - me[1] * me[4];
+
+		var det = me[0] * a11 + me[1] * a12 + me[2] * a13;
 
 		// no inverse
 
@@ -1536,7 +1538,7 @@ THREE.Matrix3.prototype = {
 
 		var idet = 1.0 / det;
 
-		var m = this.m;
+		var m = this.elements;
 
 		m[ 0 ] = idet * a11; m[ 1 ] = idet * a21; m[ 2 ] = idet * a31;
 		m[ 3 ] = idet * a12; m[ 4 ] = idet * a22; m[ 5 ] = idet * a32;
@@ -1546,10 +1548,10 @@ THREE.Matrix3.prototype = {
 
 	},
 
-	/*
+	
 	transpose: function () {
 
-		var tmp, m = this.m;
+		var tmp, m = this.elements;
 
 		tmp = m[1]; m[1] = m[3]; m[3] = tmp;
 		tmp = m[2]; m[2] = m[6]; m[6] = tmp;
@@ -1558,7 +1560,7 @@ THREE.Matrix3.prototype = {
 		return this;
 
 	},
-	*/
+	
 
 	transposeIntoArray: function ( r ) {
 

+ 23 - 21
build/custom/ThreeWebGL.js

@@ -1501,7 +1501,7 @@ THREE.Math = {
 
 THREE.Matrix3 = function () {
 
-	this.m = [];
+	this.elements = new Float32Array(9);
 
 };
 
@@ -1514,17 +1514,19 @@ THREE.Matrix3.prototype = {
 		// input: THREE.Matrix4
 		// ( based on http://code.google.com/p/webgl-mjs/ )
 
-		var a11 =   matrix.elements[10] * matrix.elements[5] - matrix.elements[6] * matrix.elements[9];
-		var a21 = - matrix.elements[10] * matrix.elements[1] + matrix.elements[2] * matrix.elements[9];
-		var a31 =   matrix.elements[6] * matrix.elements[1] - matrix.elements[2] * matrix.elements[5];
-		var a12 = - matrix.elements[10] * matrix.elements[4] + matrix.elements[6] * matrix.elements[8];
-		var a22 =   matrix.elements[10] * matrix.elements[0] - matrix.elements[2] * matrix.elements[8];
-		var a32 = - matrix.elements[6] * matrix.elements[0] + matrix.elements[2] * matrix.elements[4];
-		var a13 =   matrix.elements[9] * matrix.elements[4] - matrix.elements[5] * matrix.elements[8];
-		var a23 = - matrix.elements[9] * matrix.elements[0] + matrix.elements[1] * matrix.elements[8];
-		var a33 =   matrix.elements[5] * matrix.elements[0] - matrix.elements[1] * matrix.elements[4];
-
-		var det = matrix.elements[0] * a11 + matrix.elements[1] * a12 + matrix.elements[2] * a13;
+        var me = matrix.elements;
+        
+		var a11 =   me[10] * me[5] - me[6] * me[9];
+		var a21 = - me[10] * me[1] + me[2] * me[9];
+		var a31 =   me[6] * me[1] - me[2] * me[5];
+		var a12 = - me[10] * me[4] + me[6] * me[8];
+		var a22 =   me[10] * me[0] - me[2] * me[8];
+		var a32 = - me[6] * me[0] + me[2] * me[4];
+		var a13 =   me[9] * me[4] - me[5] * me[8];
+		var a23 = - me[9] * me[0] + me[1] * me[8];
+		var a33 =   me[5] * me[0] - me[1] * me[4];
+
+		var det = me[0] * a11 + me[1] * a12 + me[2] * a13;
 
 		// no inverse
 
@@ -1536,7 +1538,7 @@ THREE.Matrix3.prototype = {
 
 		var idet = 1.0 / det;
 
-		var m = this.m;
+		var m = this.elements;
 
 		m[ 0 ] = idet * a11; m[ 1 ] = idet * a21; m[ 2 ] = idet * a31;
 		m[ 3 ] = idet * a12; m[ 4 ] = idet * a22; m[ 5 ] = idet * a32;
@@ -1546,10 +1548,10 @@ THREE.Matrix3.prototype = {
 
 	},
 
-	/*
+	
 	transpose: function () {
 
-		var tmp, m = this.m;
+		var tmp, m = this.elements;
 
 		tmp = m[1]; m[1] = m[3]; m[3] = tmp;
 		tmp = m[2]; m[2] = m[6]; m[6] = tmp;
@@ -1558,7 +1560,7 @@ THREE.Matrix3.prototype = {
 		return this;
 
 	},
-	*/
+	
 
 	transposeIntoArray: function ( r ) {
 
@@ -11866,9 +11868,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 			object._modelViewMatrix = new THREE.Matrix4();
 			object._normalMatrix = new THREE.Matrix3();
 
-			object._normalMatrixArray = new Float32Array( 9 );
-			object._modelViewMatrixArray = new Float32Array( 16 );
-			object._objectMatrixArray = new Float32Array( 16 );
+			//object._normalMatrixArray = new Float32Array( 9 );
+			//object._modelViewMatrixArray = new Float32Array( 16 );
+			//object._objectMatrixArray = new Float32Array( 16 );
 
 			//object.matrixWorld.flattenToArray( object._objectMatrixArray );
 
@@ -12750,7 +12752,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		if ( uniforms.normalMatrix ) {
 
-			_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrixArray );
+			_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrix.elements );
 
 		}
 
@@ -12979,7 +12981,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 		object._modelViewMatrix.multiply( camera.matrixWorldInverse, object.matrixWorld);
 
 		object._normalMatrix.getInverse( object._modelViewMatrix );
-		object._normalMatrix.transposeIntoArray( object._normalMatrixArray );
+		object._normalMatrix.transpose();
 
 	};
 

+ 17 - 15
src/core/Matrix3.js

@@ -4,7 +4,7 @@
 
 THREE.Matrix3 = function () {
 
-	this.m = [];
+	this.elements = new Float32Array(9);
 
 };
 
@@ -17,17 +17,19 @@ THREE.Matrix3.prototype = {
 		// input: THREE.Matrix4
 		// ( based on http://code.google.com/p/webgl-mjs/ )
 
-		var a11 =   matrix.elements[10] * matrix.elements[5] - matrix.elements[6] * matrix.elements[9];
-		var a21 = - matrix.elements[10] * matrix.elements[1] + matrix.elements[2] * matrix.elements[9];
-		var a31 =   matrix.elements[6] * matrix.elements[1] - matrix.elements[2] * matrix.elements[5];
-		var a12 = - matrix.elements[10] * matrix.elements[4] + matrix.elements[6] * matrix.elements[8];
-		var a22 =   matrix.elements[10] * matrix.elements[0] - matrix.elements[2] * matrix.elements[8];
-		var a32 = - matrix.elements[6] * matrix.elements[0] + matrix.elements[2] * matrix.elements[4];
-		var a13 =   matrix.elements[9] * matrix.elements[4] - matrix.elements[5] * matrix.elements[8];
-		var a23 = - matrix.elements[9] * matrix.elements[0] + matrix.elements[1] * matrix.elements[8];
-		var a33 =   matrix.elements[5] * matrix.elements[0] - matrix.elements[1] * matrix.elements[4];
+        var me = matrix.elements;
+        
+		var a11 =   me[10] * me[5] - me[6] * me[9];
+		var a21 = - me[10] * me[1] + me[2] * me[9];
+		var a31 =   me[6] * me[1] - me[2] * me[5];
+		var a12 = - me[10] * me[4] + me[6] * me[8];
+		var a22 =   me[10] * me[0] - me[2] * me[8];
+		var a32 = - me[6] * me[0] + me[2] * me[4];
+		var a13 =   me[9] * me[4] - me[5] * me[8];
+		var a23 = - me[9] * me[0] + me[1] * me[8];
+		var a33 =   me[5] * me[0] - me[1] * me[4];
 
-		var det = matrix.elements[0] * a11 + matrix.elements[1] * a12 + matrix.elements[2] * a13;
+		var det = me[0] * a11 + me[1] * a12 + me[2] * a13;
 
 		// no inverse
 
@@ -39,7 +41,7 @@ THREE.Matrix3.prototype = {
 
 		var idet = 1.0 / det;
 
-		var m = this.m;
+		var m = this.elements;
 
 		m[ 0 ] = idet * a11; m[ 1 ] = idet * a21; m[ 2 ] = idet * a31;
 		m[ 3 ] = idet * a12; m[ 4 ] = idet * a22; m[ 5 ] = idet * a32;
@@ -49,10 +51,10 @@ THREE.Matrix3.prototype = {
 
 	},
 
-	/*
+	
 	transpose: function () {
 
-		var tmp, m = this.m;
+		var tmp, m = this.elements;
 
 		tmp = m[1]; m[1] = m[3]; m[3] = tmp;
 		tmp = m[2]; m[2] = m[6]; m[6] = tmp;
@@ -61,7 +63,7 @@ THREE.Matrix3.prototype = {
 		return this;
 
 	},
-	*/
+	
 
 	transposeIntoArray: function ( r ) {
 

+ 5 - 5
src/renderers/WebGLRenderer.js

@@ -3827,9 +3827,9 @@ THREE.WebGLRenderer = function ( parameters ) {
 			object._modelViewMatrix = new THREE.Matrix4();
 			object._normalMatrix = new THREE.Matrix3();
 
-			object._normalMatrixArray = new Float32Array( 9 );
-			object._modelViewMatrixArray = new Float32Array( 16 );
-			object._objectMatrixArray = new Float32Array( 16 );
+			//object._normalMatrixArray = new Float32Array( 9 );
+			//object._modelViewMatrixArray = new Float32Array( 16 );
+			//object._objectMatrixArray = new Float32Array( 16 );
 
 			//object.matrixWorld.flattenToArray( object._objectMatrixArray );
 
@@ -4711,7 +4711,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 		if ( uniforms.normalMatrix ) {
 
-			_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrixArray );
+			_gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrix.elements );
 
 		}
 
@@ -4940,7 +4940,7 @@ THREE.WebGLRenderer = function ( parameters ) {
 		object._modelViewMatrix.multiply( camera.matrixWorldInverse, object.matrixWorld);
 
 		object._normalMatrix.getInverse( object._modelViewMatrix );
-		object._normalMatrix.transposeIntoArray( object._normalMatrixArray );
+		object._normalMatrix.transpose();
 
 	};