我想从SCNNode几何体中提取面部信息,就像我们可以从几何源中提取顶点信息一样。你知道如何实现这一目标吗?
发布于 2021-10-27 17:03:00
如果您有一个SCNGeometry对象(可以从带有node.geometry的SCNNode中获得),那么您可以查看elements属性,该属性将以SCNGeometryElement对象数组的形式包含面部信息。
例如,假设您只想要第一个元素
let element = geometry.elements[0]
let faces = element.data.withUnsafeBytes {(ptr: UnsafeRawBufferPointer) -> [Int32] in
guard let boundPtr = ptr.baseAddress?.assumingMemoryBound(to: Int32.self) else {return []}
let buffer = UnsafeBufferPointer(start: boundPtr, count: element.data.count / 4)
return Array<Int32>(buffer)
}
print(faces)根据element.primitiveType的不同,您需要以不同的方式解释索引。请参阅SCNGeometryPrimitiveType的文档。
https://stackoverflow.com/questions/69480030
复制相似问题