소스 검색

CSS2DRenderer: Simplified projection code as per @WestLangley suggestion in 02b1361f2892dcb1bc7b4e1b56522f59a63639fe.

Mr.doob 12 년 전
부모
커밋
10b284d327
1개의 변경된 파일5개의 추가작업 그리고 10개의 파일을 삭제
  1. 5 10
      examples/js/renderers/CSS2DRenderer.js

+ 5 - 10
examples/js/renderers/CSS2DRenderer.js

@@ -38,7 +38,7 @@ THREE.CSS2DRenderer = function () {
 	var _width, _height;
 	var _widthHalf, _heightHalf;
 
-	var vector4 = new THREE.Vector4();
+	var vector = new THREE.Vector3();
 	var viewMatrix = new THREE.Matrix4();
 	var viewProjectionMatrix = new THREE.Matrix4();
 
@@ -64,16 +64,11 @@ THREE.CSS2DRenderer = function () {
 
 		if ( object instanceof THREE.CSS2DObject ) {
 
-			var element = object.element;
-			var matrix = object.matrixWorld;
-
-			vector4.set( matrix.elements[ 12 ], matrix.elements[ 13 ], matrix.elements[ 14 ], 1 );
-			vector4.applyMatrix4( viewProjectionMatrix );
+			vector.getPositionFromMatrix( object.matrixWorld );
+			vector.applyProjection( viewProjectionMatrix );
 
-			vector4.x = ( vector4.x / vector4.w ) * _widthHalf + _widthHalf;
-			vector4.y = - ( vector4.y / vector4.w ) * _heightHalf + _heightHalf;
-
-			var style = 'translate(-50%,-50%) translate(' + vector4.x + 'px,' + vector4.y + 'px)';
+			var element = object.element;
+			var style = 'translate(-50%,-50%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)';
 
 			element.style.WebkitTransform = style;
 			element.style.MozTransform = style;