gpt4 book ai didi

augmented-reality - 如何在 ARCore 中将自定义图像放在 3D 球体上

转载 作者:行者123 更新时间:2023-11-29 23:45:21 24 4
gpt4 key购买 nike

以下是我构建 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 并且颜色为红色,那么整个事情都可以正常工作(即我可以看到球体)

为了能够看到带有地球纹理的球体,我必须在这里进行什么更改?

最佳答案

此时 Google Sceneform 1.8 支持以下格式的 3D Assets :.obj.glTF 不支持动画)和 .fbx 有或没有动画。支持的纹理格式为:.mtl.bin.png.jpg

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

验证项目的应用程序文件夹是否包含示例数据文件夹。要创建文件夹,请在项目窗口中右键单击应用程序文件夹,然后选择 New > Sample Data Directory

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

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

进入 sampledata 文件夹。

Do not copy these source files into your project's assets or res folder, as this will cause them to be included in your APK unnecessarily. Right click the 3D model source asset and select Import Sceneform Asset to begin the import process.

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

希望这对您有所帮助。

关于augmented-reality - 如何在 ARCore 中将自定义图像放在 3D 球体上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51492820/

24 4 0