首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在预纹理模型上改变纹理的libgdx

在预纹理模型上改变纹理的libgdx
EN

Stack Overflow用户
提问于 2014-05-13 14:58:30
回答 1查看 927关注 0票数 1

我已经从搅拌器导出了一个模型,但是我希望一些实例使用不同的纹理

代码语言:javascript
复制
       if (x % 2 == 0) {
            shipInstance.materials.clear();
            shipInstance.materials.add(new Material());
            shipInstance.materials.get(0).set(new TextureAttribute(TextureAttribute.Diffuse, enemyTexture));

不幸的是不管用!

以类似的方式,我希望能够改变像光泽和平滑这样的东西(我猜你可以改变这种使用默认着色器的东西吗?)

我(后来)也试过这个.

代码语言:javascript
复制
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);
    }
}

除其他外..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-19 14:34:46

啊!

代码语言:javascript
复制
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!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23634804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档