首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >经典ARCore- Sceneform的增强图像样本翻译为Sceneform 1.16.0

经典ARCore- Sceneform的增强图像样本翻译为Sceneform 1.16.0
EN

Stack Overflow用户
提问于 2020-08-04 12:29:07
回答 1查看 167关注 0票数 0

我正在尝试翻译Sceneform 1.15.0的增强图像示例,以便与ARCore 1.18.0和Sceneform 1.16.0一起使用。(请注意,GitHub的Sceneform1.16.0存储库只附带gltfio示例)。

我的目标是使用GLTFIO库来加载动画GLTFs/GLB在图像上显示。(为Sceneform 1.16.0早期版本提供的Android插件机制无法实现此功能)。

通过这种方式,我改变了前面提到的Sceneform 1.15.0示例中显示的旧加载机制:

代码语言:javascript
复制
...
CompletableFuture.allOf(model)
    .thenAccept((Void aVoid) -> {
        _image = image;
    
        setAnchor(image.createAnchor(image.getCenterPose()));
    
        Node nodeRenderable=new Node();
        nodeRenderable.setParent(this);
        nodeRenderable.setRenderable(modelgetNow(null));
    })
    .exceptionally(
        throwable -> {
            Log.e(TAG, "Exception loading", throwable);
            return null;
        });
    }
...

像这样的...with ..。

代码语言:javascript
复制
...
//gltfio
WeakReference<ARActivity> weakActivity = new WeakReference<>((ARActivity) _context);
//
ModelRenderable.builder()
    .setSource(_context,Uri.parse(uriAsset))
    .setIsFilamentGltf(true)
    .build()
    .thenAccept(modelRenderable -> {
        ARActivity activity = weakActivity.get();
        if (activity != null) {
            _image = image;
            _renderable = modelRenderable;
            //
            // Set the anchor based in the center of the image.
            setAnchor(image.createAnchor(image.getCenterPose()));
            //
            Node nodeRenderable=new Node();
            nodeRenderable.setParent(this);
            nodeRenderable.setRenderable(modelRenderable);
        }
    })
    .exceptionally(throwable -> {
        Toast toast =Toast.makeText(_context, "Unable to load renderable", Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();

        return null;
    });
...

在LogCat中,所有运行都是正确的,没有错误或警告。我的意思是,应用程序跟踪图像完美,但模型是完全没有显示。

FYI,我意识到,当我继续应用,模型显示(但固定在屏幕上),直到我把设备指向(可增强的)图像。

有人经历过这种情况吗?

有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-05 09:43:10

解决了。建议的gltfio加载程序代码运行良好。这只是3D模型的一个问题,导致它被显示在剪裁空间之外。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63246918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档