libGDX:具有着色器的相同纹理,没有着色器的不同纹理

libGDX:具有着色器的相同纹理,没有着色器的不同纹理,libgdx,textures,shader,Libgdx,Textures,Shader,我的名字是Tom(Ger),我正在用libGDX开发一个小型的3D游戏 当我使用模型、ModelInstance和ModelBatch以及环境时,我可以使用正确的纹理渲染不同的ModelInstance(使用不同的模型) 但是我需要使用一个着色器来实现一些抖动效果 但是当我使用着色器时,除了纹理之外,所有的东西都工作正常。我要渲染的每个ModelInscance都有相同的 我想这是一个纹理绑定问题。我通过以下方式加载模型: assets = new AssetManager(); assets.

我的名字是Tom(Ger),我正在用libGDX开发一个小型的
3D
游戏

当我使用模型、ModelInstance和ModelBatch以及环境时,我可以使用正确的纹理渲染不同的ModelInstance(使用不同的模型)

但是我需要使用一个着色器来实现一些抖动效果

但是当我使用着色器时,除了纹理之外,所有的东西都工作正常。我要渲染的每个ModelInscance都有相同的

我想这是一个纹理绑定问题。我通过以下方式加载模型:

assets = new AssetManager();
assets.load("blob.g3db", Model.class);
然后用一个简单的

public static Model getModel(String name) {
    return assets.get(name + ".g3db", Model.class);
}
所以我猜AssetManager也在加载纹理(因为它在没有着色器的情况下工作)

我的问题是: 如何使用具有正确纹理的着色器渲染差异
3D
对象

先谢谢你。。。
汤姆

模型和模型实例有一个
材质
,您可以在其中设置
纹理
颜色
和其他内容。
因此,如果两个
模型实例
s共享相同的
模型
,您可以将不同的
材质
s设置为它们的
模型实例
s。通过这样做,您可以获得不同的
纹理。
DefaultShader
实现会处理这些问题。如果您创建自己的
着色器
,则需要注意它们。
重要提示:如果没有
着色器
,它将无法工作,因为您总是使用
着色器
进行渲染。您不需要手动设置
着色器
,但libgdx默认使用
DefaultShader

我建议你读一些