当前位置: 首页 > 知识库问答 >
问题:

如何在ARCore/Sceneform中加速平面检测

苏鹏鹍
2023-03-14

ARCore场景表单示例项目“hello场景表单”很酷,工作非常好。

问题是需要移动手机以获得一个放置锚的表面。太慢了。

我的应用程序不需要在垂直平面(墙)上显示任何东西,只需要在地板上显示。我是否可以跳过“移动手机”步骤,或者至少加快速度?

我试过:

session.getConfig().setPlaneFindingMode(Config.PlaneFindingMode.HORIZONTAL);

认为如果我不需要寻找垂直面,那么一切都会更快。。。。。似乎还不够快。

谢谢

共有3个答案

闻鹤龄
2023-03-14

在ARCore中加速飞机探测相当容易。下面是一段代码片段:

class MainActivity : AppCompatActivity() {

    lateinit var arFrag: ArFragment

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_ux)

        arFrag = supportFragmentManager.findFragmentById(R.id.ux_fragment) as ArFragment
        arFrag.planeDiscoveryController.hide()
        arFrag.planeDiscoveryController.setInstructionView(null)
        arFrag.arSceneView.planeRenderer.isEnabled = false
        arFrag.arSceneView.scene.setOnUpdateListener(::onFrame)
    }

    // ........................................................
}

希望这有帮助。

姬裕
2023-03-14

隐藏显示用户应如何移动手机的动画

 arFragment.planeDiscoveryController.hide()
 arFragment.planeDiscoveryController.setInstructionView(null)
冯德佑
2023-03-14

不幸的是,该框架受到用于检测平面的计算机视觉模型的限制(读取:启用)。plane discovery controller(即“移动手机”步骤)是对用户的轻推,通过摄像头向模型提供检测这些飞机所需的深度信息。删除此步骤不会加快进程,只会让用户无需任何说明。

如果没有对核心平面检测模型的改进,我不认为有办法使其更快。我们能做的最好的就是想出UX轻推,鼓励用户更有效地横向移动手机。

 类似资料:
  • 问题内容: 我想知道是否有人使用ARCore SDK实时识别了设备之前的垂直平面。 通过使用线方程定义墙,我设法获得了不错的结果: 用“每y个”注释表示要忽略y轴(如在房间的2d映射中从上方看墙壁),以便计算定义墙壁的线。 乘数是两点之间的旋转: 所有的计算是: 现在,我在用户四处走动并采样许多点云点时触发该计算。 结果很好,但不如ARCore的水平面检测准确。 问题答案: 现在是ARCore的一

  • 我正在工作的一个项目和面临一个问题与ARCORE。我在我的项目中使用了ARCore定位,我使用纬度和经度来设置对象的位置。但当我在设备中看到它时,对象位置在AR中是不同的。 它的主要问题是它检测表面和放置图像根据它,如果有任何可能禁用表面检测,那么它的工作是完美的。

  • 假设我有三个锚,来自阿拉片段的命中结果。 锚定=命中结果。createAnchor(); 如何使用Sceneform绘制三角形并应用自定义纹理?

  • 使用ViewRenderable渲染布局文件。我为布局文件指定了固定的宽度和高度 现在,我将建筑布局设置为可视可渲染 之后,我需要渲染这个对象到节点 现在我需要在sunVisual节点的右侧添加另一个节点 这段代码在google pixel 2设备上运行良好,但我在诺基亚x6设备上的空间很小 如何以米为单位获取渲染视图的宽度和高度? 如何根据父节点呈现的视图大小设置父节点右侧的本地位置 请帮助我解

  • 使用ARCore/SceneFormAPI,我需要访问一个可呈现的特定子网格,但找不到实现的方法。 我想知道这个功能是不是通过RenderableDefinition实现的,但是文档对这个主题是非常清楚的。 谢谢你抽出时间。

  • 不是每次触摸屏幕都放置一个模型的新实例(就像在quickstart&codelab中那样),而是尝试让每次触摸都将模型重新定位到那个位置,同时仍然保留拖动和缩放交互。 有什么想法吗?