我开始学习如何使用ARkit,我想在Pokemon go应用程序中添加一个按钮,您可以在其中将AR ON(具有模型的真实世界)和AR OFF(不带AR)之间切换使用相机,仅具有固定背景的3D模型)。有什么简单的方法吗?
答案 0 :(得分:0)
您要问的另一个很好的例子是iOS 12中的AR快速查看功能(请参阅WWDC video或this article):快速查看USDZ文件时,您会得到一个通用的白色背景预览,您可以在其中使用触摸手势旋转对象,并且可以在该视图和真实世界的AR相机视图之间无缝地来回切换。
您已经问过有关ARKit的问题,但没有说出您正在使用哪个渲染器。请记住,ARKit本身只能告诉您有关真实世界的信息,并提供实时的相机图像,但是由您决定显示该图像以及所需的任何3D叠加内容-通过使用诸如SceneKit,Unity或Unreal的3D图形框架,或者通过使用Metal创建自己的渲染器。因此,此答案的其余部分与渲染器无关。
相同内容的AR视图和非AR 3D视图之间有两个主要区别:
AR视图在后台显示实时摄像机的提要;非AR视图则不会。
3D图形框架通常涉及虚拟摄像机的一些概念,这些概念确定了您对3D场景的看法-通过移动摄像机,您可以更改看到的场景部分以及从哪个角度看到它。在AR中,使虚拟摄像机与实际设备的移动相匹配。
因此,要在相同内容的AR和非AR 3D视图之间切换,您只需以渲染器允许的任何方式来操纵这些差异:
隐藏实时摄像机源。如果渲染器允许您直接将其关闭,请执行此操作。否则,您可以在其前面放置一些前景内容,例如不透明的天空盒和/或用于放置3D模型的平面。
您可以直接控制相机和/或为用户提供触摸/手势控制以操作相机。如果渲染器在场景中支持多台摄像机并选择当前用于渲染的摄像机,则可以保留并在ARKit管理的摄像机和您自己的摄像机之间切换。