title: How to get intersected face when raycasting against buffer geometry
body: <p>I'm raycasting against a scene.</p>
  
  <p>The geometry of intersected object is "BufferGeometry". 
  Part of Intersected object is</p>
  
  <pre><code>{
    distance: 494.77924415158327
    face: Face3 {a: 732, b: 733, c: 734, normal: Vector3, vertexNormals: [], …},
    faceIndex: 732,
    index: 732,
    object: Mesh {id: 16, uuid: "F1E299F1-927D-4CD8-ACF6-3A5AA528EACD", name: "collide_main", type: "Mesh", parent: Group, …},
    point: Vector3 {x: -3.025193341955971, y: 2.63172597487887, z: -4.237102099257478, isVector3: true, …},
    uv: Vector2 {x: 0.46554459963387684, y: 0.6888516128730314, isVector2: true, …}
   }
  </code></pre>
  
  <p>I need to get the face of that object. I'm doing this for that.</p>
  
  <pre><code>var geometry = new THREE.Geometry().fromBufferGeometry( INTERSECTED.object.geometry );
  var faces = geometry.faces;
  var intersectedFace = faces[INTERESECTED.faceIndex];
  </code></pre>
  
  <p>But many time INTERSECTED face contains an index which is not there in faces. for Example in the above case INTERSECTED.faceIndex is 732, but the faces i obtaines contains array of only 200 faces.</p>
  
  <p>How can i get the intersected face.</p>