Browse Source

Added an optional renderDepth (should be in [0,1]) to objects which will override the default z-sorting in the renderer. Setting this attribute on e.g. meshes allows us to control painting order and solve any transparency/depth test issues when relying on default sort order.

Nik Van den Wijngaert 14 years ago
parent
commit
8c2bfade3e
1 changed files with 12 additions and 4 deletions
  1. 12 4
      src/renderers/WebGLRenderer.js

+ 12 - 4
src/renderers/WebGLRenderer.js

@@ -3125,10 +3125,18 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 					if ( this.sortObjects ) {
 
-						_vector3.copy( object.position );
-						_projScreenMatrix.multiplyVector3( _vector3 );
-
-						webglObject.z = _vector3.z;
+						if ( webglObject.object.renderDepth ) {
+							
+							webglObject.z = webglObject.object.renderDepth;
+						
+						} else {
+						
+							_vector3.copy( object.position );
+							_projScreenMatrix.multiplyVector3( _vector3 );
+	
+							webglObject.z = _vector3.z;
+							
+						}
 
 					}