小编jjc*_*jjc的帖子

'Project' ARFaceAnchor 指向屏幕

我试图在屏幕上叠加 ARFaceAnchor 顶点以完成两个场景 1) 有一个虚拟人脸保持在中心(屏幕上)位置,但反映几何体的变化。顶点 2)让虚拟人脸与实际人脸重叠(来自预览层) .

我在这里遵循了Rickster 的建议,但只成功地从屏幕上的某些角度投影了脸部(仅出现在左下方并旋转​​)。我不太熟悉每个矩阵的不同目的,但这是我到目前为止所得到的。有什么建议吗?

let modelMatrix = faceAnchor.transform
var points: [CGPoint] = []

faceAnchor.geometry.vertices.forEach {
    // Convert the vertex position from model space to camera space (use the anchor’s transform)
    let vertex4 = vector_float4($0.x, $0.y, $0.z, 1)
    let vertexCamera = simd_mul(modelMatrix, vertex4)

    // Multiply with the camera projection with that vector to get to normalized image coordinates 
    let normalizedImageCoordinates = simd_mul(projectionMatrix, vertexCamera)

    let point = CGPoint(x: CGFloat(normalizedImageCoordinates.x), y: CGFloat(normalizedImageCoordinates.y))
    points.append(point)
} 
Run Code Online (Sandbox Code Playgroud)

ios11 arkit iphone-x

5
推荐指数
1
解决办法
1391
查看次数

标签 统计

arkit ×1

ios11 ×1

iphone-x ×1