我运行了ARCore SDK和Sceneform SDK中提供的所有示例。但在Sceneform采样中,它仅检测平面表面,而不检测墙。但它在ARCore SDK中提供的示例中有效。所以在Sceneform中没有可用的墙检测?有没有什么ARCore特性是无法使用Sceneform访问的?
发布于 2018-05-17 06:29:00
使用Sceneform时,ARCore在安卓上的所有功能都可用。最常见的用例非常简单,例如处理楼层平面上的对象。
要访问ARCore会话,可以调用ArSceneView.getSession()
通过调用Scene.setOnUpdateListener()设置场景侦听器,然后在侦听器中调用ArSceneView.getArFrame(),可以执行逐帧操作。
例如
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.sceneView = (ArSceneView) findViewById(R.id.scene_view);
sceneView.getScene().setOnUpdateListener((this::onSceneUpdate));
}
private void onSceneUpdate(FrameTime updatedTime) {
Frame frame = sceneView.getArFrame();
Collection<Anchor> updatedAnchors = frame.getUpdatedAnchors();
for (Anchor anchor : updatedAnchors) {
// Handle updated anchors...
}
}对于需要配置会话的ARCore功能,您可以在自己的代码中创建会话并调用ArSceneView.setupSession(),或者如果您使用ArFragment,您可以扩展ArFragment可以实现在创建会话后立即调用的getSessionConfiguration()。
请记住,如果您直接将会话配置为将更新模式设置为LATEST_CAMERA_IMAGE。
https://stackoverflow.com/questions/50372926
复制相似问题