浏览代码

Merge branch 'dev' of https://github.com/mrdoob/three.js into dev

Mr.doob 9 年之前
父节点
当前提交
d781ca955f
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      examples/js/renderers/SoftwareRenderer.js

+ 6 - 0
examples/js/renderers/SoftwareRenderer.js

@@ -158,6 +158,8 @@ THREE.SoftwareRenderer = function ( parameters ) {
 			var material = element.material;
 			var material = element.material;
 			var shader = getMaterialShader( material );
 			var shader = getMaterialShader( material );
 
 
+			if ( !shader ) continue;
+
 			if ( element instanceof THREE.RenderableFace ) {
 			if ( element instanceof THREE.RenderableFace ) {
 
 
 				if ( ! element.uvs ) {
 				if ( ! element.uvs ) {
@@ -520,6 +522,8 @@ THREE.SoftwareRenderer = function ( parameters ) {
 		var id = material.id;
 		var id = material.id;
 		var shader = shaders[ id ];
 		var shader = shaders[ id ];
 
 
+		if ( shader && !textures[ material.map.id ] ) delete shaders[ id ];
+
 		if ( shaders[ id ] === undefined ) {
 		if ( shaders[ id ] === undefined ) {
 
 
 			material.addEventListener( 'update', onMaterialUpdate );
 			material.addEventListener( 'update', onMaterialUpdate );
@@ -556,6 +560,8 @@ THREE.SoftwareRenderer = function ( parameters ) {
 					var texture = new THREE.SoftwareRenderer.Texture();
 					var texture = new THREE.SoftwareRenderer.Texture();
 					texture.fromImage( material.map.image );
 					texture.fromImage( material.map.image );
 
 
+					if ( !texture.data ) return;
+
 					textures[ material.map.id ] = texture;
 					textures[ material.map.id ] = texture;
 
 
 					if ( material instanceof THREE.MeshBasicMaterial
 					if ( material instanceof THREE.MeshBasicMaterial