ArSceneView、ArFragment和ScenView有什么区别?我已经在 Google 的 ArCore 示例中看到了所有这些内容,但我不明白它们之间的区别以及它们在不同应用程序中的互换。每个网站都没有提供太多信息,对初学者没有帮助。它们之间有哪些一般属性不同?什么时候应该用什么?
谢谢!
Google Sceneform 的
ArFragment
(它是 BaseArFragment
的子类)是使用高级 API 开发 Android 原生 AR 应用程序的基石。 ArSceneView 是 ArFragment
的子对象,在其屋顶下不仅有一个 Session
及其用于跟踪平面、增强图像和增强面部的可配置设置,而且还有一个预配置的转换系统,可让您使用开箱即用的手势来移动、旋转和缩放可渲染模型。使用 ArSceneView
,作为 ArFragment
的一部分,您可以获得在 Android 平台上创建 ARCore 应用程序的最简单工具。
Google Sceneform 的 SceneView 为开发人员提供了创建无需 AR 组件的纯虚拟现实 (VR) Android 应用程序的工具。此类别包括不需要使用后置或自拍相机来跟踪现实世界环境的 3D 应用程序。如您所知,使用
SceneView
时,不需要 AR 会话,也不需要使用 Anchors。所有可渲染模型都附加到 Scene
对象的根节点。缺少 ArFragment
会带来一个特点:您必须自己启用手势才能与模型交互。在清单文件中,VR 应用程序通常包含一行 AR 值=“可选”。
如果由于某些明显的原因,您不想使用已弃用的 Google Sceneform 框架构建 AR/VR 应用程序,那么您应该使用基于 OpenGL 的低级 API 来加载和渲染模型。在这种情况下,必须使用专门的
GLSurfaceView
来创建 3D 场景。作为示例,我建议您查看 HelloAR Kotlin 示例应用程序中的详细 GL 代码。