我这里使用 Google 开源的 filament 加载 glb 文件,想要改变其中一个材质的颜色,在网上搜了好久也没有找到办法,不知道有没有使用过这个项目的,能指点一二,不胜感激! https://github.com/google/filament
1
psklf 253 天前
材质是写在 glb 里面的,改一下 glb 嘛
|
3
wangtian2020 253 天前
只用过 threejs 的时候动态改过材质颜色。首先在 blender 里打开素材,找到要改变的组件的 id 或者是 name 。然后用程序里用 api 选中组件改就行了。自己去翻翻 API 吧
|
6
b821025551b 253 天前
静下心来翻翻文档嘛
https://google.github.io/filament/Materials.md.html#materialdefinitions/format/example 至于到安卓怎么写,随便搜了一下有个重置天空盒的: https://www.cnblogs.com/crane13/p/15876270.html 我觉得材质对象应该也有一堆吧,打印出来看看和文档有没有相似的东西。 |
7
DateData OP @psklf 下面代码是可行的
val materialInstances: Array<out MaterialInstance>? = modelViewer.asset?.instance?.materialInstances // val textureSampler = TextureSampler() if (materialInstances != null) { for (materialInstance in materialInstances) { L.l().d("setColor :"+materialInstance.name) if (materialInstance.name =="touming") { materialInstance.setParameter( "baseColorFactor", 0.5f, 0.10f, 0.10f ) // Values for Red, Green and Blue } } } |