I did some tests with Raycaster and indexedBufferGeometry.
According to the documentation
Raycaster .intersectObject
https://threejs.org/docs/index.html#api/core/Raycaster.intersectObject
faceIndex – index of the intersected face
indices – indices of vertices comprising the intersected face
When intersecting a Mesh with a BufferGeometry, the faceIndex will be undefined, and indices will be set; when intersecting a Mesh with a Geometry, indices will be undefined.
I have created output.
That was correct except for the indices.
In the source code
three.js/src/objects/Mesh.js (github .com /mrdoob/three.js/blob/master/src/objects/Mesh.js)
I found:
function checkBufferGeometryIntersection( …
if ( intersection ) {…
intersection.face = new Face3( a, b, c, Triangle.normal( vA, vB, vC ) );
intersection.faceIndex = a;
Then I took faceIndex and it works.
Addendum: A more complete edition:
BufferGeometry and Face3
I’m a little confused. How do I get clear in my head again?