ARCore – 在平面上显示3D模型。

我已经使用ARCore成功地显示了一个3D模型,但我如何将模型直接放置在一个平面的顶部?

enter image description here

     mArFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.ar_fragment);
     mArFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
     Anchor anchor = hitResult.createAnchor();

     ModelRenderable.builder()
           .setSource(this, Uri.parse("ArcticFox_Posed.sfb"))
           .build()
           .thenAccept(modelRenderable -> addModelToScene(anchor, modelRenderable))
           .exceptionally(throwable -> {
                    AlertDialog.Builder builder = new AlertDialog.Builder(this);
                    builder.setMessage(throwable.getMessage())
                    .show();
                    return null;
               });
           });

解决方案:

你可以用ShapeFactory制作一个可渲染的平面,并使你的fox可渲染成为一个平面对象的子对象,像这样 。

private fun addModelToScene(anchor: Anchor, renderable: Renderable) {    
    val anchorNode = AnchorNode(anchor)
    val node = TransformableNode(fragment.transformationSystem)
    node.renderable = renderablePlane //create plane renderable
    node.setParent(anchorNode)
    val nodeFox = Node()
    nodeFox.renderable = renderable
    //edit localPosition to fit on the plane with nodeFox.localPosition
    nodeFox.setParent(node)
    fragment.arSceneView.scene.addChild(anchorNode)
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

Javascript。如何从utf-8编码到iso-8859-1,并从中进行解码?

2022-9-8 22:00:40

未分类

如何在 react native 中从普通函数中获取上下文值?(没有使用Context或类组件)

2022-9-8 22:11:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索