当前位置:   article > 正文

3D模型 在Android Studio 中的应用_android studio 3d模型插件

android studio 3d模型插件

3D模型 在Android Studio 中的应用

学习如何在Android Studio使用ARCore SDK和Sceneform库创建AR Android应用程序

1. 项目环境

在开发之前,首先确保Android Studio 版本高于3.1。
并确保所创建项目的SDK最小适应版本不低于24(Android 7)

2. 准备工作

2.1 请求权限

在清单文件中,我们需要为应用获取互联网权限以便通过URL加载3D模型;并获取相机许可来打开3D模型。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-feature android:name="android.hardware.camera.ar"/>
<uses-permission android:name="android.permission.CAMERA"/>
  • 1
  • 2
  • 3

同时这里我们要用Google Play的AR服务来帮助我们使用3D模型

<meta-data android:name="com.google.ar.core" android:value="required" />
  • 1

2.2 构建配置

添加UX库和assets库以动态添加3D模型

implementation 'com.google.ar.sceneform.ux:sceneform-ux:1.15.0'
implementation 'com.google.ar.sceneform:assets:1.15.0'
  • 1
  • 2

3. 代码实现

3.1 布局文件

通过fragment来使用UX库提供的场景

<fragment
        android:id="@+id/fragment"
        android:name="com.google.ar.sceneform.ux.ArFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
  • 1
  • 2
  • 3
  • 4
  • 5

3.2 主要活动

设置所要使用模型的URL地址

 private ArFragment arFragment;
 private ModelRenderable modelRenderable;
 private String Model_URL = "https:/lgithub.com/EasylearnIndia/lEasyLear.n/blob/" +
            "Augmented-Reality.EasyLearn/Assets/Model1s./t.ige.ltiger.g1bar.awatrue;"
  • 1
  • 2
  • 3
  • 4

将先前我们配置UX场景转为Arfragment使用

arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.fragment);
  • 1

创建模型和相关的可渲染对象

private void setUpModel() {
   ModelRenderable.builder()
   .setSource(this,RenderableSource.builder().setSource(
   this,Uri.parse(Model_URL),RenderableSource.SourceType.GLB)
   
	.setRecenterMode(RenderableSource.RecenterMode.ROOT)
    .build())
	.setRegistryId(Model_URL)
	.build()
    .thenAccept(renderable -> modelRenderable = renderable);
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

创建模型并设置可变形节点予许使用者拖动和缩放模型

private void createModel(AnchorNode anchorNode){
        TransformableNode node = new TransformableNode(arFragment.getTransformationSystem());
        node.setParent(anchorNode);
        node.setRenderable(modelRenderable);
        node.select();
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

设置用户在屏幕上选择节点位置创建3D模型

private void setUpPlane(){
        arFragment.setOnTapArPlaneListener(((hitResult, plane, motionEvent) -> {
            Anchor anchor = hitResult.createAnchor();
            AnchorNode anchorNode = new AnchorNode(anchor);
            anchorNode.setParent(arFragment.getArSceneView().getScene());
            createModel(anchorNode);
        }));
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4. 运行效果演示

在这里插入图片描述
参考视屏

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/254595
推荐阅读
相关标签
  

闽ICP备14008679号