Ios 将图形放置在几何体顶点上

Ios 将图形放置在几何体顶点上,ios,xcode,arkit,Ios,Xcode,Arkit,我试图找到在中引用ARFaceGeometry网格索引的方法 使用ARKit在面的特定部分放置图形的顺序 我已经看到了一些示例,其中该特性与一些 索引号,但我找不到此列表的任何引用。看来 有1200多个地点。一个教程在左边使用索引1064 眼睛。这些数字的来源是什么?这似乎是一个糟糕的做法 参考一个硬数字-如果苹果增加更多怎么办 举个例子,假设我做了一个纹身图形,并想把它贴在上面 用户的前额。如何找到推荐人 我可以像这样在鼻子上粘贴一张图片,但同样,我找不到编号的列表 顶点-我盲目地使用一个有人

我试图找到在中引用ARFaceGeometry网格索引的方法 使用ARKit在面的特定部分放置图形的顺序

我已经看到了一些示例,其中该特性与一些 索引号,但我找不到此列表的任何引用。看来 有1200多个地点。一个教程在左边使用索引1064 眼睛。这些数字的来源是什么?这似乎是一个糟糕的做法 参考一个硬数字-如果苹果增加更多怎么办

举个例子,假设我做了一个纹身图形,并想把它贴在上面 用户的前额。如何找到推荐人

我可以像这样在鼻子上粘贴一张图片,但同样,我找不到编号的列表 顶点-我盲目地使用一个有人提到的数字

func updateFeatures(for node : SCNNode, using anchor : ARFaceAnchor) {

    let child = node.childNode(withName: "myNose", recursively: false) as? MyGraphicNode
    let vertices = [anchor.geometry.vertices[9]]
    child?.updatePosition(for: vertices)

}

任何指导都将不胜感激。Xcode 10 beta 6、iPhoneX

尽管到目前为止,
ARFaceGeometry
网格在所有iOS 11.x版本和iOS 12 beta版本中都保持稳定,而且至少保证在一个会话中保持地形稳定,但苹果是否或何时会改变网格还不得而知(比如说,有更多的顶点)并且没有语义标记顶点的API

因此,正如您所怀疑的,可以将3D艺术资产锚定到感兴趣的点(如鼻尖或左眼的外角或其他位置)如果您通过反复试验找出该点对应的顶点索引,但很难知道该索引在未来的iOS构建、未来的硬件等中是否仍然有意义


然而,你说的是“纹身图案”,这听起来像是2D艺术资产-您想要的视觉效果可能不是将平面固定到3D面上,而是让2D艺术看起来像打印在皮肤上一样。在这种情况下,您根本不想处理顶点。只需将纹理图像应用于几何体/材质-与网格拓扑不同,更容易想象纹理贴图坐标在各个版本中保持不变,因为几何体可以在纹理保持不变的同时进行更改。要找到纹理图像的哪些区域适用于面部的哪些区域,可能还需要反复尝试,但一旦找到结果,就可以无限期地重复使用它。

而到目前为止,
ARFaceGeometry
mesh在所有iOS 11.x版本和iOS 12 Beta版本中都保持了稳定——并且至少保证在一个会话中保持地形稳定——不知道苹果是否或何时会更改网格(比如,拥有更多顶点)。也没有语义标记顶点的API

因此,正如您所怀疑的,可以将3D艺术资产锚定到感兴趣的点(如鼻尖或左眼的外角或其他位置)如果您通过反复试验找出该点对应的顶点索引,但很难知道该索引在未来的iOS构建、未来的硬件等中是否仍然有意义


然而,你说的是“纹身图案”,这听起来像是2D艺术资产-您想要的视觉效果可能不是将平面固定到3D面上,而是让2D艺术看起来像打印在皮肤上一样。在这种情况下,您根本不想处理顶点。只需将纹理图像应用于几何体/材质-与网格拓扑不同,更容易想象纹理贴图坐标在各个版本中保持不变,因为几何体可以在纹理保持不变的情况下进行更改。要找到纹理图像的哪些区域适用于面部的哪些区域,可能还需要反复尝试,但一旦找到结果,就可以无限期地重复使用它。

谢谢。我想这就是为什么我可以我找不到相关信息。是的,我知道你对纹身的建议是一个更好的方法。我会试一试。我仍然希望能够在脸上应用3D项目,但也许我必须等到将来的一些变化。我确实绘制了粗糙的项目,如“00”对于带有遮挡节点的眼镜,但要找到正确的位置完全是反复试验。当然不利于一般性。纹理贴图!直接应用于前额。@rickster很抱歉打扰你……我遇到了一个SceneKit问题,你能帮我解决吗?问题:谢谢。我想这就是我找不到信息的原因。是的,我看到了你对纹身的建议是一个更好的方法。我会试一试。我仍然希望能够在脸上应用3D项目,但也许我必须等到将来的一些变化。我确实绘制了粗糙的项目,如“00”对于带有遮挡节点的眼镜,但要找到正确的位置完全是反复试验。当然不适合一般情况。纹理贴图!直接应用于前额。@rickster很抱歉打扰你……我正在努力解决一个SceneKit问题,你能帮我解决吗?问题:看看这个:乍一看,它似乎可以解决问题。我将测试它,看看顶点编号是否可以重复。谢谢。自iPhone X以来,顶点编号一直是相同的,但将来可能会发生变化。没有其他方法可以获得我可以找到的位置。请检查:乍一看,它似乎可以做到这一点。我将测试它,看看顶点编号是否可以重复谢谢。从iPhoneX开始,顶点的数字一直是一样的,但将来可能会改变。没有其他方法可以找到这些位置。