2
0
Эх сурвалжийг харах

Made Projector.projectObject more open for custom rendererers.

Mr.doob 13 жил өмнө
parent
commit
81ef5c3b32

+ 1 - 1
examples/js/renderers/DOMRenderer.js

@@ -1,5 +1,5 @@
 /**
- * @author mr.doob / http://mrdoob.com/
+ * @author mrdoob / http://mrdoob.com/
  */
 
 THREE.DOMRenderer = function () {

+ 1 - 1
examples/js/renderers/SVGRenderer.js

@@ -1,5 +1,5 @@
 /**
- * @author mr.doob / http://mrdoob.com/
+ * @author mrdoob / http://mrdoob.com/
  */
 
 THREE.SVGRenderer = function () {

+ 1 - 1
examples/js/renderers/SoftwareRenderer.js

@@ -1,5 +1,5 @@
 /**
- * @author mr.doob / http://mrdoob.com/
+ * @author mrdoob / http://mrdoob.com/
  */
 
 THREE.SoftwareRenderer = function () {

+ 1 - 1
examples/js/renderers/SoftwareRenderer2.js

@@ -1,5 +1,5 @@
 /**
- * @author mr.doob / http://mrdoob.com/
+ * @author mrdoob / http://mrdoob.com/
  */
 
 THREE.SoftwareRenderer2 = function () {

+ 1 - 1
examples/js/renderers/SoftwareRenderer3.js

@@ -1,5 +1,5 @@
 /**
- * @author mr.doob / http://mrdoob.com/
+ * @author mrdoob / http://mrdoob.com/
  */
 
 THREE.SoftwareRenderer3 = function () {

+ 54 - 30
src/core/Projector.js

@@ -76,60 +76,84 @@ THREE.Projector = function() {
 		_renderData.sprites.length = 0;
 		_renderData.lights.length = 0;
 
-		var projectObject = function ( object ) {
+		var projectObject = function ( parent ) {
 
-			if ( object.visible === false ) return;
+			for ( var c = 0, cl = parent.children.length; c < cl; c ++ ) {
 
-			if ( ( object instanceof THREE.Mesh || object instanceof THREE.Line ) &&
-			( object.frustumCulled === false || _frustum.contains( object ) === true ) ) {
+				var object = parent.children[ c ];
 
-				_object = getNextObjectInPool();
-				_object.object = object;
+				if ( object.visible === false ) continue;
 
-				if ( object.renderDepth !== null ) {
+				if ( object instanceof THREE.Light ) {
 
-					_object.z = object.renderDepth;
+					_renderData.lights.push( object );
 
-				} else {
+				} else if ( object instanceof THREE.Mesh || object instanceof THREE.Line ) {
 
-					_vector3.copy( object.matrixWorld.getPosition() );
-					_viewProjectionMatrix.multiplyVector3( _vector3 );
-					_object.z = _vector3.z;
+					if ( object.frustumCulled === false || _frustum.contains( object ) === true ) {
 
-				}
+						_object = getNextObjectInPool();
+						_object.object = object;
+
+						if ( object.renderDepth !== null ) {
+
+							_object.z = object.renderDepth;
+
+						} else {
 
-				_renderData.objects.push( _object );
+							_vector3.copy( object.matrixWorld.getPosition() );
+							_viewProjectionMatrix.multiplyVector3( _vector3 );
+							_object.z = _vector3.z;
+
+						}
+
+						_renderData.objects.push( _object );
+
+					}
 
-			} else if ( object instanceof THREE.Sprite || object instanceof THREE.Particle ) {
+				} else if ( object instanceof THREE.Sprite || object instanceof THREE.Particle ) {
 
-				_object = getNextObjectInPool();
-				_object.object = object;
+					_object = getNextObjectInPool();
+					_object.object = object;
 
-				// TODO: Find an elegant and performant solution and remove this dupe code.
+					// TODO: Find an elegant and performant solution and remove this dupe code.
 
-				if ( object.renderDepth !== null ) {
+					if ( object.renderDepth !== null ) {
 
-					_object.z = object.renderDepth;
+						_object.z = object.renderDepth;
+
+					} else {
+
+						_vector3.copy( object.matrixWorld.getPosition() );
+						_viewProjectionMatrix.multiplyVector3( _vector3 );
+						_object.z = _vector3.z;
+
+					}
+
+					_renderData.sprites.push( _object );
 
 				} else {
 
-					_vector3.copy( object.matrixWorld.getPosition() );
-					_viewProjectionMatrix.multiplyVector3( _vector3 );
-					_object.z = _vector3.z;
+					_object = getNextObjectInPool();
+					_object.object = object;
 
-				}
+					if ( object.renderDepth !== null ) {
 
-				_renderData.sprites.push( _object );
+						_object.z = object.renderDepth;
 
-			} else if ( object instanceof THREE.Light ) {
+					} else {
 
-				_renderData.lights.push( object );
+						_vector3.copy( object.matrixWorld.getPosition() );
+						_viewProjectionMatrix.multiplyVector3( _vector3 );
+						_object.z = _vector3.z;
 
-			}
+					}
 
-			for ( var c = 0, cl = object.children.length; c < cl; c ++ ) {
+					_renderData.objects.push( _object );
+
+				}
 
-				projectObject( object.children[ c ] );
+				projectObject( object );
 
 			}
 

+ 4 - 4
src/materials/ParticleDOMMaterial.js

@@ -2,14 +2,14 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
-THREE.ParticleDOMMaterial = function ( domElement ) {
+THREE.ParticleDOMMaterial = function ( element ) {
 
-	this.domElement = domElement;
+	this.element = element;
 
 };
 
-THREE.ParticleDOMMaterial.prototype.clone = function(){ 
+THREE.ParticleDOMMaterial.prototype.clone = function(){
 
-	return new THREE.ParticleDOMMaterial( this.domElement );
+	return new THREE.ParticleDOMMaterial( this.element );
 
 };