浏览代码

LensFlare: API clean up.

Mr.doob 7 年之前
父节点
当前提交
9e7c0a57fb
共有 2 个文件被更改,包括 12 次插入45 次删除
  1. 11 20
      examples/js/objects/LensFlare.js
  2. 1 25
      examples/webgl_lensflares.html

+ 11 - 20
examples/js/objects/LensFlare.js

@@ -10,7 +10,6 @@ THREE.LensFlare = function () {
 	this.type = 'LensFlare';
 
 	this.positionScreen = new THREE.Vector3();
-	this.customUpdateCallback = undefined;
 	this.flareVisible = false;
 
 	// textures
@@ -111,15 +110,7 @@ THREE.LensFlare = function () {
 
 			// update object positions
 
-			if ( this.customUpdateCallback ) {
-
-				this.customUpdateCallback( this );
-
-			} else {
-
-				this.updateLensFlares();
-
-			}
+			updateLensFlares();
 
 		} else {
 
@@ -129,23 +120,23 @@ THREE.LensFlare = function () {
 
 	};
 
-	this.updateLensFlares = function () {
+	var scope = this;
 
-		var vecX = - this.positionScreen.x * 2;
-		var vecY = - this.positionScreen.y * 2;
+	function updateLensFlares() {
 
-		for ( var i = 0, l = this.children.length; i < l; i ++ ) {
+		var vecX = - scope.positionScreen.x * 2;
+		var vecY = - scope.positionScreen.y * 2;
 
-			var flare = this.children[ i ];
+		for ( var i = 0, l = scope.children.length; i < l; i ++ ) {
 
-			flare.flarePosition.x = this.positionScreen.x + vecX * flare.flareDistance;
-			flare.flarePosition.y = this.positionScreen.y + vecY * flare.flareDistance;
+			var flare = scope.children[ i ];
 
-			flare.flareRotation += 0.25;
+			flare.flarePosition.x = scope.positionScreen.x + vecX * flare.flareDistance;
+			flare.flarePosition.y = scope.positionScreen.y + vecY * flare.flareDistance;
 
 		}
 
-	};
+	}
 
 	this.getOcclusionMap = function () {
 
@@ -332,7 +323,7 @@ THREE.LensFlareElement.Shader = {
 		'opacity': { value: 1 },
 		'color': { value: null },
 		'scale': { value: null },
-		'rotation': { value: 1 },
+		'rotation': { value: 0 },
 		'screenPosition': { value: null }
 
 	},

+ 1 - 25
examples/webgl_lensflares.html

@@ -149,9 +149,7 @@
 					lensFlare.add( new THREE.LensFlareElement( textureFlare3, 70, 0.7 ) );
 					lensFlare.add( new THREE.LensFlareElement( textureFlare3, 120, 0.9 ) );
 					lensFlare.add( new THREE.LensFlareElement( textureFlare3, 70, 1 ) );
-					lensFlare.customUpdateCallback = lensFlareUpdateCallback;
-					lensFlare.position.copy( light.position );
-					scene.add( lensFlare );
+					light.add( lensFlare );
 
 				}
 
@@ -182,28 +180,6 @@
 
 			//
 
-			function lensFlareUpdateCallback( object ) {
-
-				 var vecX = - object.positionScreen.x * 2;
-				 var vecY = - object.positionScreen.y * 2;
-
-				 for ( var i = 0, l = this.children.length; i < l; i ++ ) {
-
-					 var flare = this.children[ i ];
-
-					 flare.flarePosition.x = object.positionScreen.x + vecX * flare.flareDistance;
-					 flare.flarePosition.y = object.positionScreen.y + vecY * flare.flareDistance;
-					 flare.flareRotation = 0;
-
-				 }
-
-				 object.children[ 2 ].flarePosition.y += 0.025;
-				 object.children[ 3 ].flareRotation = object.positionScreen.x * 0.5 + THREE.Math.degToRad( 45 );
-
-			 }
-
-			//
-
 			function onWindowResize( event ) {
 
 				renderer.setSize( window.innerWidth, window.innerHeight );