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