【问题标题】:ARCore: Sceneform demo bug on loading asset from virtual deviceARCore:从虚拟设备加载资产​​的 Sceneform 演示错误
【发布时间】:2018-09-11 10:09:15
【问题描述】:

您好,提前感谢任何可以帮助我或给我一些建议的人。

我正在开发 Google ARCore 演示,特别是“Hellosceneform”演示,用户可以在其中将 3D 模型放在飞机上。

为了测试不同 3D 资产的导入,我将默认的“Andy”3D 模型更改为我制作的另一个 3D 模型,采用通常的.sfb 格式,并在 Android Emulator 上测试了演示。

问题是这样的:

  • 如果我将“raw”目录中的 3D 资产加载到演示中,效果会很好...
  • ...但是在 Android 模拟器中,如果我从 设备文件系统上的目录加载资产(例如,'sceneform'演示的默认appathonTapListener中的ModelRenderable(在我的代码中称为andyRenderable始终为空! 李>

更重要的是:演示在真实手机上完美运行,在两种情况下(raw 和设备文件系统)。

加载 3D 资源的代码是这样的:

    File fsfb = new File(local_path + "/" + "prova3.sfb");

    Uri usfb = Uri.fromFile(fsfb);
    ModelRenderable.builder()
            .setSource(this, usfb)
            .build()
            .thenAccept(renderable -> andyRenderable = renderable)
            .exceptionally(
                    throwable -> {
                        Toast toast =
                                Toast.makeText(this, "Unable to load andy renderable", Toast.LENGTH_LONG);
                        toast.setGravity(Gravity.CENTER, 0, 0);
                        toast.show();
                        return null;
                    });

而 onTapListener 的代码是这样的:

arFragment.setOnTapArPlaneListener(
            (HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {

                if(nn >= 3 || andyRenderable == null)
                {
                    return;
                }
                nn++;

【问题讨论】:

标签: java android 3d augmented-reality arcore


【解决方案1】:

解决了。

这是原始目录权限错误的问题(无法加载模型,需要“rw”设置)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    相关资源
    最近更新 更多