title: three.js updating geometry face materialindex
body: <p>Is there a way to change the materialIndex on a face of an existing Mesh? This isn't discussed in the <a href="https://github.com/mrdoob/three.js/wiki/Updates" rel="noreferrer">How to Update Things</a> documentation, so I am not sure if it's possible. I'm using a WebGLRenderer context for this.</p>
  
  <p>This is basically what I'm trying to do:</p>
  
  <pre><code>// Make a mesh with two materials
  var texture = THREE.ImageUtils.loadTexture(IMAGE_URL);
  var geometry = new THREE.Geometry();
  geometry.materials.push(new THREE.MeshBasicMaterial({ wireframe: true, vertexColors: THREE.FaceColors}));
  geometry.materials.push(new THREE.MeshBasicMaterial({ map: texture, overdraw: true}));
  
  whatever.forEach(function(w, i) { 
    geometry.vertices.push(makeVerts(w));
  
    var materialIndex = 0;
    var color = new THREE.Color(i);
    geometry.faces.push(new THREE.Face4(i*4+0, i*4+1, i*4+2, i*4+3, 
                      null, color, materialIndex));
  });
  
  var mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial());
  scene.add(mesh)
  
  
  // Later on, change some faces to a different material
  
  geometry.faces.filter(someFilter).forEach(function(face) {
    face.color = someOtherColor;
    face.materialIndex = 1;
  }
  
  geometry.colorsNeedUpdate = true; // This is how to update the color, and it works.
  //geometry.materialsNeedUpdate = true; // This isn't a thing, is it?
  </code></pre>