浏览代码

Merge pull request #14495 from Mugen87/dev2

WebGLRenderer: Render sprites along opaque and transparent objects
Mr.doob 7 年之前
父节点
当前提交
608ede85ba
共有 2 个文件被更改,包括 1 次插入36 次删除
  1. 0 6
      src/renderers/WebGLRenderer.js
  2. 1 30
      src/renderers/webgl/WebGLRenderLists.js

+ 0 - 6
src/renderers/WebGLRenderer.js

@@ -1102,7 +1102,6 @@ function WebGLRenderer( parameters ) {
 
 
 		var opaqueObjects = currentRenderList.opaque;
 		var opaqueObjects = currentRenderList.opaque;
 		var transparentObjects = currentRenderList.transparent;
 		var transparentObjects = currentRenderList.transparent;
-		var spriteObjects = currentRenderList.sprites;
 
 
 		if ( scene.overrideMaterial ) {
 		if ( scene.overrideMaterial ) {
 
 
@@ -1110,7 +1109,6 @@ function WebGLRenderer( parameters ) {
 
 
 			if ( opaqueObjects.length ) renderObjects( opaqueObjects, scene, camera, overrideMaterial );
 			if ( opaqueObjects.length ) renderObjects( opaqueObjects, scene, camera, overrideMaterial );
 			if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera, overrideMaterial );
 			if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera, overrideMaterial );
-			if ( spriteObjects.length ) renderObjects( spriteObjects, scene, camera, overrideMaterial );
 
 
 		} else {
 		} else {
 
 
@@ -1122,10 +1120,6 @@ function WebGLRenderer( parameters ) {
 
 
 			if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera );
 			if ( transparentObjects.length ) renderObjects( transparentObjects, scene, camera );
 
 
-			//
-
-			if ( spriteObjects.length ) renderObjects( spriteObjects, scene, camera );
-
 		}
 		}
 
 
 		// Generate mipmap if we're using any kind of mipmap filtering
 		// Generate mipmap if we're using any kind of mipmap filtering

+ 1 - 30
src/renderers/webgl/WebGLRenderLists.js

@@ -47,24 +47,6 @@ function reversePainterSortStable( a, b ) {
 }
 }
 
 
 
 
-function painterSortStableSprites( a, b ) {
-
-	if ( a.renderOrder !== b.renderOrder ) {
-
-	 return a.renderOrder - b.renderOrder;
-
-	} else if ( a.z !== b.z ) {
-
-	 return b.z - a.z;
-
-	} else {
-
-	 return b.id - a.id;
-
-	}
-
-}
-
 function WebGLRenderList() {
 function WebGLRenderList() {
 
 
 	var renderItems = [];
 	var renderItems = [];
@@ -72,7 +54,6 @@ function WebGLRenderList() {
 
 
 	var opaque = [];
 	var opaque = [];
 	var transparent = [];
 	var transparent = [];
-	var sprites = [];
 
 
 	function init() {
 	function init() {
 
 
@@ -80,7 +61,6 @@ function WebGLRenderList() {
 
 
 		opaque.length = 0;
 		opaque.length = 0;
 		transparent.length = 0;
 		transparent.length = 0;
-		sprites.length = 0;
 
 
 	}
 	}
 
 
@@ -116,15 +96,8 @@ function WebGLRenderList() {
 
 
 		}
 		}
 
 
-		if ( object.isSprite ) {
-
-			sprites.push( renderItem );
 
 
-		} else {
-
-			( material.transparent === true ? transparent : opaque ).push( renderItem );
-
-		}
+		( material.transparent === true ? transparent : opaque ).push( renderItem );
 
 
 		renderItemsIndex ++;
 		renderItemsIndex ++;
 
 
@@ -134,14 +107,12 @@ function WebGLRenderList() {
 
 
 		if ( opaque.length > 1 ) opaque.sort( painterSortStable );
 		if ( opaque.length > 1 ) opaque.sort( painterSortStable );
 		if ( transparent.length > 1 ) transparent.sort( reversePainterSortStable );
 		if ( transparent.length > 1 ) transparent.sort( reversePainterSortStable );
-		if ( sprites.length > 1 ) sprites.sort( painterSortStableSprites );
 
 
 	}
 	}
 
 
 	return {
 	return {
 		opaque: opaque,
 		opaque: opaque,
 		transparent: transparent,
 		transparent: transparent,
-		sprites: sprites,
 
 
 		init: init,
 		init: init,
 		push: push,
 		push: push,