【发布时间】:2018-10-08 10:14:03
【问题描述】:
我正在对一个场景进行光线投射。
相交对象的几何形状是“BufferGeometry”。 相交对象的一部分是
{
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, …}
}
我需要得到那个物体的脸。我就是为了这个。
var geometry = new THREE.Geometry().fromBufferGeometry( INTERSECTED.object.geometry );
var faces = geometry.faces;
var intersectedFace = faces[INTERESECTED.faceIndex];
但很多时候,INTERSECTED 面包含一个面中不存在的索引。例如在上述情况下,INTERSECTED.faceIndex 是 732,但我获得的面包含只有 200 个面的数组。
我怎样才能得到相交的脸。
【问题讨论】:
-
我是否理解正确,首先,您找到缓冲区几何体的面索引,然后将该几何体转换为常用几何体,并尝试将该面索引应用于新的常用几何体(这与原始缓冲几何没有任何共同点)?
-
是的。我如何才能为通常的几何图形获取新的 faceIndex。
-
你的缓冲区几何结构没有索引吗?
-
是的。内部 bufferGeometry 索引为空。我认为这意味着它是非索引的
标签: three.js raycasting buffer-geometry