瀏覽代碼

get a pre calculated WebGL reference projection matrix

simonThiele 10 年之前
父節點
當前提交
5a09fda597
共有 1 個文件被更改,包括 7 次插入13 次删除
  1. 7 13
      test/unit/cameras/PerspectiveCamera.js

+ 7 - 13
test/unit/cameras/PerspectiveCamera.js

@@ -5,16 +5,8 @@
 module( "PerspectiveCamera" );
 
 test( "updateProjectionMatrix", function() {
-	var near = 1,
-			far = 3,
-			bottom = -1,
-			top = 1,
-			aspect = 16 / 9,
-			left = -top * aspect,
-			right = -bottom * aspect,
-			fov = 90;
 
-	var cam = new THREE.PerspectiveCamera( fov, aspect, near, far );
+	var cam = new THREE.PerspectiveCamera( 75, 16 / 9, 0.1, 300.0 );
 
 	// updateProjectionMatrix is called in contructor
 	var m = cam.projectionMatrix;
@@ -23,12 +15,14 @@ test( "updateProjectionMatrix", function() {
 	// 2n/r-l		0			l+r/r-l				 0
 	//   0		2n/t-b	t+b/t-b				 0
 	//   0			0		-(f+n/f-n)	-(2fn/f-n)
-	//   0			0				-1						 0
+	//   0			0				-1					 0
 
+	// this matrix was calculated by hand via glMatrix.perspective(75, 16 / 9, 0.1, 300.0, pMatrix)
+	// to get a reference matrix from plain WebGL
 	var reference = new THREE.Matrix4().set(
-		( 2 * near ) / ( right - left ), 0, ( right + left ) / ( right - left ), 0,
-		0, ( 2 * near ) / ( top - bottom ), ( top + bottom ) / ( top - bottom ), 0,
-		0, 0, - ( far + near ) / ( far - near ), - ( 2 * near * far ) / ( far - near ),
+		0.7330642938613892, 0, 0, 0,
+		0, 1.3032253980636597, 0, 0,
+		0, 0, -1.000666856765747, -0.2000666856765747,
 		0, 0, -1, 0
 	);