gpt4 book ai didi

android - ARCore 从 URL 生成 3D 对象并增强图像

转载 作者:行者123 更新时间:2023-12-03 00:46:47 25 4
gpt4 key购买 nike

我在使用以下代码从 URL 生成 3D 对象时遇到问题,它给了我一个错误,我不确定它是什么。如果有人能指出代码有什么问题,那就太棒了

我遵循了 Google 的教程:https://developers.google.com/ar/develop/java/sceneform/create-renderables 。但由于语法错误,必须修改一下。

(1)下面的代码应该从 URL - ASSET_URL 生成 3D 对象(我已经测试了这个有效的 URL)。

    private AugmentedImage image;
private CompletableFuture<ModelRenderable> modelRenderable;

modelRenderable =
ModelRenderable.builder()
.setSource(context, RenderableSource.builder().setSource(
context,
Uri.parse(ASSET_URL),
RenderableSource.SourceType.GLTF2)
.setScale(0.5f) // Scale the original model to 50%.
.setRecenterMode(RenderableSource.RecenterMode.ROOT)
.build())
.setRegistryId(ASSET_URL)
.build();

(2)以下代码是将3D对象放置在图像上:

        if(!modelRenderable.isDone()){
CompletableFuture.allOf(modelRenderable)
.thenAccept((Void aVoid) -> setImage(image))
.exceptionally(
throwable -> {
Log.e(TAG, "Exception loading", throwable);
return null;
}
);
return;
}

(3)以下代码(我从 sceneform 示例augmentedImage 修改而来)从与代码 (2) 配合使用的静态本地资源生成 3D 对象

//        modelRenderable = ModelRenderable.builder()
// .setSource(context,Uri.parse("SubstanceMiku.sfb"))
// .build();

我遇到的错误

E/Filament: Panic
in filament::Material *filament::Material::Builder::build(filament::Engine &):85
reason: Material version mismatch. Expected 2 but received 1.
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 16333 (tapp.cloudimage), pid 16333 (tapp.cloudimage)
I/native: tracking.cc:3027 no history. confidence : 1.0
I/native: tracking.cc:3027 no history. confidence : 1.0
I/native: motion_analysis_calculator.cc:611 Analyzed frame 101
Application terminated.

最佳答案

我遇到了类似的问题,经过一些调试和搜索,它似乎与 scenefrom 插件类路径有关。

如果您转到项目级别等级构建文件并将场景表单插件类路径更新到最新版本,同步并重试,这会为我消除错误。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.3.61'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.ar.sceneform:plugin:1.15.0' // <-- *THIS LINE*

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
google()
jcenter()

}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

顺便说一句,调试很棘手,可能是因为像 ModelRenderable.builder 这样的一些函数利用了较低的层,这些层不会像其他一些 Android 层那样崩溃和抛出异常。尽管崩溃是从构建器内的 .build 生成的,通过逐步注释掉代码来确认,但“异常(exception)”子句并未被调用。

关于android - ARCore 从 URL 生成 3D 对象并增强图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com