Browse Source

Merge pull request #7746 from makc/software-renderer

allow some texture assignment freedom with SoftwareRenderer
Mr.doob 9 years ago
parent
commit
fbb589f82a
1 changed files with 6 additions and 0 deletions
  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