title: Three.js bump map not updating
body: <p>I have a <code>.obj</code> model with the corresponding <code>.mtl</code> file loaded in my scene. I'm applying a <code>bumpMap</code> to it after being loaded:</p>
  
  <pre><code>        var mtlLoader = new THREE.MTLLoader();
          mtlLoader.setPath('/models/');
          mtlLoader.load('model.mtl', function (materials) {
              materials.preload();
  
              // Load obj file
              var objLoader = new THREE.OBJLoader();
              objLoader.setMaterials(materials);
              objLoader.setPath('/models/');
              objLoader.load('model.obj', function (group) {
  
                  var geometry = group.children[0].geometry;
                  geometry.center();
  
                  model = new THREE.Mesh(geometry, otherMesh.material.clone());
                  model.material.bumpMap = new THREE.ImageUtils.loadTexture('images/bump.png');
                  model.name = "obj model";
                  scene.add(model);
  
                  render();
                  callback();
              });
          });
  </code></pre>
  
  <p>This works as expected. The <code>map</code> texture is just a black and white <code>.png</code> image. But if I apply the <code>bumpMap</code> not just before adding the model it's not applied. For example, with this code the <code>bumpMap</code> is not applied to the model:</p>
  
  <pre><code>        var mtlLoader = new THREE.MTLLoader();
          mtlLoader.setPath('/models/');
          mtlLoader.load('model.mtl', function (materials) {
              materials.preload();
  
              // Load obj file
              var objLoader = new THREE.OBJLoader();
              objLoader.setMaterials(materials);
              objLoader.setPath('/models/');
              objLoader.load('model.obj', function (group) {
  
                  var geometry = group.children[0].geometry;
                  geometry.center();
  
                  model = new THREE.Mesh(geometry, otherMesh.material.clone());
                  setTimeout(function(){
                      model.material.bumpMap = new THREE.ImageUtils.loadTexture('images/bump.png');
                  }, 0);
  
                  model.name = "obj model";
                  scene.add(model);
  
                  render();
                  callback();
              });
          });
  </code></pre>
  
  <p>Just adding a timeout and the <code>bumpMap</code> is not applied anymore. Adding <code>model.bumpMap.needsUpdate = true;</code> after applying the <code>bumpMap</code> doesn't change anything.</p>