在Three.js项目中,我有一个使用buffergeometry的网格。
使用raycaster,我可以在特定面中找到与该网格相交的射线的交点。
如何找到此面的顶点位置?
答案 0 :(得分:2)
使用交集对象的faceIndex
属性比使用face
更容易。您可以像这样使用它:
var vA = new THREE.Vector3();
var vB = new THREE.Vector3();
var vC = new THREE.Vector3();
var face = intersection.face;
var geometry = intersection.object.geometry;
var position = geometry.attributes.position;
vA.fromBufferAttribute( position, face.a );
vB.fromBufferAttribute( position, face.b );
vC.fromBufferAttribute( position, face.c );
如果您需要世界空间中的顶点,则将这三个向量与对象的世界矩阵相乘。
three.js R102