首页 > 解决方案 > Android ArCore Sceneform API。如何在运行时更改纹理?

问题描述

服务器有3000多个模型,每个模型都有几种颜色的材料。我需要分别加载模型和纹理,并根据用户的选择设置纹理。如何在运行时更改 baseColorMap、normalMap、metallicMap、roughnessMap?

在modelRenderable.getMaterial().setTexture("normalMap", normalMap.get())之后;什么也没发生我做错了什么。文档中没有这方面的信息。

标签: androidarcoresceneform

解决方案


感谢您发布这个问题。

  • setTexture()似乎不起作用:不幸的是,我们 API 的这一部分仍然有点粗糙;它有效,但很容易出错。我们正在制作一个示例来说明如何在运行时修改材质参数(包括纹理),并将在下一个版本中改进我们的错误报告。
  • 数以千计的具有多个排列的模型如何?: 这里的计划有两个部分:
    • Android Studio 插件使用的二进制文件将可用于服务器平台上的构建脚本。这将允许您将资产在服务器端转换为.sfb. 我们将很快发布一篇关于如何做到这一点的博客文章。
    • .sfa能够包含与几何体没有明确关联的松散纹理和材质,并且.sfa' 将能够声明对其他.sfa' 的数据依赖性。这将意味着您可以创作(和交付).sfb包含纹理/材质(但没有几何)和.sfb包含几何(但没有纹理/材质)的 ',如果它们在实例化时都可用,它将只是工作。

推荐阅读