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

在Android Studio中使用ArCore加载模型

颛孙昆
2023-03-14

我很难跟随这些例子,用ArCore加载到我自己的模型中。我发现了以下代码:

ModelRenderable.builder()
    // To load as an asset from the 'assets' folder ('src/main/assets/andy.sfb'):
    .setSource(this, Uri.parse("andy.sfb"))

    // Instead, load as a resource from the 'res/raw' folder ('src/main/res/raw/andy.sfb'):
    //.setSource(this, R.raw.andy)

    .build()
    .thenAccept(renderable -> andyRenderable = renderable)
    .exceptionally(
        throwable -> {
          Log.e(TAG, "Unable to load Renderable.", throwable);
          return null;
    });

但是我找不到ModelRenderable类以及如何导入它。此外,我正在从以下模型构建应用程序示例:

virtualObject.createOnGlThread(/*context=*/ this, "models/andy.obj", "models/andy.png");
virtualObject.setMaterialProperties(0.0f, 2.0f, 0.5f, 6.0f);

但我的模型没有png文件,只有obj和mtl。自动场景窗体还创建了一个sfa和sfb文件。哪种方法是正确的?

共有1个答案

袁枫涟
2023-03-14

参考这里是关于启动模型的官方留档:https://developers.google.com/ar/develop/java/sceneform#renderables

ModelRenderablecom的一部分。谷歌。ar.sceneform:corelibrary,您可以通过将此依赖项添加到应用程序级别的build来添加它。格雷德尔

implementation 'com.google.ar.sceneform:core:1.13.0'

确保其他所有arcore/sceneform依赖项都在同一版本上,在本例中为1.13.0。

sfa的意思是SceneFormAsset,它以人类可读的形式表示您的模型细节,不属于您的应用程序(它应该位于samplefolder中,它与您的src文件夹处于同一层次结构级别)。然而,sfb是SceneFormBinary,每次修改sfa中的内容并构建项目时,都会从sfa描述符生成这个二进制文件。sfb文件应位于项目的资产文件夹中。对于模型加载,应使用sfb文件:

ModelRenderable.builder()
        .setSource(context, Uri.parse("house.sfb"))

关于您的示例代码:如果您不熟悉OpenGL,我不建议您遵循该示例,更好地寻找SceneForm,这里是一个示例应用程序:https://github.com/google-ar/sceneform-android-sdk/tree/master/samples/solarsystem

 类似资料:
  • 我想做一个应用程序,使用谷歌翻译API。自从我添加了 我的构建中的依赖项。gradle我有个错误: 现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。-自动值-1.2。jar(com.google.auto.value:auto-value:1.2)或者,设置android。defaultConfig。javaCom

  • 问题内容: 我只是在学习Angularjs,以及如何使用templateUrl加载模板。 我有一个简单的指令: 我尝试使用这样的指令: 打开页面后,出现以下异常: 我没有确定要跨域加载模板文件(te.html与default.html处于同一折叠)。 有人可以帮我弄清楚发生了什么吗? 问题答案: 问题是您正在使用文件协议(使用协议)运行示例,并且许多浏览器(Chrome,Opera)在使用协议时都

  • 译者:talengu PyTorch的主要接口为Python。虽然Python有动态编程和易于迭代的优势,但在很多情况下,正是Python的这些属性会带来不利。我们经常遇到的生产环境,要满足低延迟和严格部署要求。对于生产场景而言,C 通常是首选语言,也能很方便的将其绑定到另一种语言,如Java,Rust或Go。本教程将介绍从将PyTorch训练的模型序列化表示,到C语言_加载_和_执行_的过程。

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

  • 我是开发ARCore应用程序的新手。我试图开发,但只有三维物体出现后扫描表面。我想UI按钮工作,有动画时,我点击按钮。谁能帮助我,有一个教程一步一步?

  • 问题内容: 我有一个问题问你: 我想在Jena TDB TripleStore上加载文件。我的文件很大,大约80Mb和大约700000的三倍RDF。当我尝试加载它时,执行将停止工作或需要很长时间。 我正在使用在Web服务上运行的以下代码: 有时我会收到Java堆空间错误: 如何将这个文件加载到模型Jena中并将其保存在TDB中?提前致谢。 问题答案: 您需要在statup上为JVM分配更多的内存。