【问题标题】:How do I put custom image on 3D Sphere in ARCore如何在 ARCore 中将自定义图像放在 3D Sphere 上
【发布时间】:2018-07-24 07:26:16
【问题描述】:

以下是我构建 3D 地球并显示它的代码:

com.google.ar.sceneform.rendering.Texture.Builder builder= com.google.ar.sceneform.rendering.Texture.builder();
builder.setSource(context,R.drawable.earth);
builder.build().thenAccept(texture ->
        MaterialFactory.makeOpaqueWithTexture(context, texture).
                thenAccept(material -> {
                  earthSphereRenderable =
                          ShapeFactory.makeSphere(0.1f, new Vector3(0.0f, 0.0f, 0.0f), material);
                  Toast.makeText(context,"All done",Toast.LENGTH_SHORT).show();})
);

Toast 消息即将到来,但我看不到任何对象。请注意,R.drawable.earth 是我放在那里的 Earth.jpg 文件,我想在 AR 中显示。

这里是我渲染它的地方

cornerNode = new Node();
    cornerNode.setParent(this);
    cornerNode.setLocalPosition(localPosition);
    cornerNode.setRenderable(earthSphereRenderable);

此外,如果我将 makeOpaqueWithTexture 替换为 makeOpaqueWithColor 并且颜色为红色,那么整个事情工作正常(即我可以看到球体)

我必须在此处进行哪些更改才能看到带有地球纹理的球体?

【问题讨论】:

  • 您可以尝试将 jpg 移动到 raw 吗?我认为纹理构建器仅适用于原始资源(或资产)。
  • 那我应该把原始图像放在哪里呢?我无法将它放在可绘制文件夹中。此外,我认为没有办法将 jpg 转换为 raw(虽然有相反的方法)
  • 您可以在 res 目录中创建一个名为“raw”的目录并将 jpg 文件放入其中。无需转换格式。然后,您可以在代码中将其引用为 R.raw.earth。 raw 文件夹按原样存储文件,而可绘制资源捆绑在一起,可以根据屏幕密度具有不同的内容。

标签: augmented-reality arcore sceneform


【解决方案1】:

目前Google Sceneform 1.8支持以下格式的3D资产:.obj.glTF(不支持动画)和@987654324 @ 有或没有动画。支持的纹理格式为:.mtl.bin.png.jpg

要导入新的带纹理的 3D 资源,请按以下步骤操作:

验证您项目的 app 文件夹是否包含 sampledata 文件夹。要创建文件夹,请在“项目”窗口中右键单击应用文件夹,然后选择New > Sample Data Directory

sampledata 文件夹是您的 Android Studio 项目的一部分,但其内容不会包含在您的 APK 中。复制您的 3D 模型源资产文件(.obj.fbx.gltf)及其所有依赖项,采用以下任意格式:

  • .mtl
  • .bin
  • .png
  • .jpg

进入 sampledata 文件夹。

请勿将这些源文件复制到项目的资产或res 文件夹中,因为这会导致它们不必要地包含在您的 APK 中。右键单击 3D 模型源资产并选择 Import Sceneform Asset 开始导入过程。

这些值由应用程序的build.gradle中的sceneform.asset()条目使用,并确定.sfa.sfb——ascii和二进制资产定义——文件(以及它们对应的纹理文件.sfm) 将在您的项目中生成。如果您是第一次导入模型,请使用默认值。

希望这会有所帮助。

【讨论】:

  • 当您想要加载使用某些建模器 CAD 软件设计的模型时。他正在使用MaterialFactory 以编程方式创建所有内容。
【解决方案2】:

好的,我得到了答案。它不接受 jpg 文件,但接受 png 文件。奇怪的东西!

【讨论】:

    猜你喜欢
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2016-09-09
    • 2014-12-03
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多