我测试了ARCore的HelloAR示例。 通过触摸设备的屏幕创建对象时,将执行CreateAnchor,然后将对象移至Anchor的子级。 您有什么理由要孩子吗?
答案 0 :(得分:3)
由于将3D对象作为锚的子对象,因此可以将该对象附加到Trackable。 本质上,ARCore无法跟踪您的3D模型,但是当您锚定它们时,会将3D模型附加到ARCore可以跟踪的对象上。这样您的3D模型也可以被跟踪。
这方面的另一点是当地位置的使用。因为每次运行使用ARCore的应用程序时,您都会注意到不同的坐标系。但是,通过使用锚点并使对象成为那些锚点的子代,您可以利用本地位置。例如,在“增强图像”示例中,无论您的图像坐标系框架如何,始终会出现在2D图像的角上。这是通过锚定和局部位置属性来实现的。
答案 1 :(得分:1)
因为它是常规的3D场景层次结构。它的构建方式与3D动画软件(例如Autodesk Maya)相同。节点的层次结构简化了动画制作过程中的转换(translate
,rotate
和scale
),并简化了在世界空间中的放置。您的AR应用中的所有3D对象都位于“世界坐标”中。
例如:您的3D场景具有根节点(Parent Node
)。任何几何,相机,灯光或ARAnchors必须具有Child Nodes
才能连接到Root Node
。而且,如果您想在场景中放置Renderable
,则必须将其Child Node
连接到ARAnchor的Parent Node
。
另一个例子:想象一个家庭的成员-祖父,父亲和儿子。父亲同时是祖父的孩子(他的节点被视为
Child Node
),父亲是儿子的父母(同时他的节点被视为Parent Node
)。
希望这会有所帮助。