我已经从blender导出了一个模型,但我想让一些实例使用不同的纹理
if (x % 2 == 0) {
shipInstance.materials.clear();
shipInstance.materials.add(new Material());
shipInstance.materials.get(0).set(new TextureAttribute(TextureAttribute.Diffuse, enemyTexture));
遗憾的是没有工作!
以类似的方式,我希望能够改变光泽和平滑之类的东西 (我猜你可以改变这样使用默认着色器的东西吗?)
我也(后来)试过这个......
Material mat = shipInstance.materials.get(m);
for (Iterator<Attribute> ai = mat.iterator(); ai.hasNext();){
Attribute att=ai.next();
if (att.type==TextureAttribute.Diffuse) {
((TextureAttribute)att).textureDescription.set(enemyTexture,TextureFilter.Linear,TextureFilter.Linear,TextureWrap.ClampToEdge,TextureWrap.ClampToEdge);
}
}
除其他外......
答案 0 :(得分:1)
哎呀!
for(int m=0;m<shipInstance.materials.size;m++) {
Material mat = shipInstance.materials.get(m);
for (Iterator<Attribute> ai = mat.iterator(); ai.hasNext();){
Attribute att=ai.next();
if (att.type==TextureAttribute.Diffuse) {
((TextureAttribute)att).textureDescription.set(enemyTexture,TextureFilter.Linear,TextureFilter.Linear,TextureWrap.ClampToEdge,TextureWrap.ClampToEdge);
}
}
}
我的错误是从materials.size中减去1。 (模型中的最后一个材料碰巧是最明显的一个,在很多情况下我尝试了不同的东西可能正在工作(接受最后的材料)DoH !!!