服务器有3000多个模型,每个模型都有几种颜色的材料。我需要分别加载模型和纹理,并根据用户的选择设置纹理。如何在运行时更改 baseColorMap、normalMap、metallicMap、roughnessMap?
在modelRenderable.getMaterial().setTexture("normalMap", normalMap.get())之后;什么也没发生我做错了什么。文档中没有这方面的信息。
感谢您发布这个问题。
setTexture()
似乎不起作用:不幸的是,我们 API 的这一部分仍然有点粗糙;它有效,但很容易出错。我们正在制作一个示例来说明如何在运行时修改材质参数(包括纹理),并将在下一个版本中改进我们的错误报告。.sfb
. 我们将很快发布一篇关于如何做到这一点的博客文章。.sfa
能够包含与几何体没有明确关联的松散纹理和材质,并且.sfa
' 将能够声明对其他.sfa
' 的数据依赖性。这将意味着您可以创作(和交付).sfb
包含纹理/材质(但没有几何)和.sfb
包含几何(但没有纹理/材质)的 ',如果它们在实例化时都可用,它将只是工作。使用此代码`
CompletableFuture<Texture> futureTexture = Texture.builder()
.setSource(this, R.drawable.shoes)
.build();
并替换为
/*.thenAccept(renderable -> andyRenderable = renderable)*/
.thenAcceptBoth(futureTexture, (renderable, texture) -> {
andyRenderable = renderable;
andyRenderable.getMaterial().setTexture("baseColor", texture);
})
会工作。