Я действительно застрял в этой проблеме. Мне нужно связать текстуру с шейдером, чтобы использовать ее как карту смещения. Вот мой код:Как связать дополнительную текстуру с шейдером. LibGDX
//create method
displacement = new Texture(Gdx.files.internal("displacementMap.png"));
shaderProgram = new ShaderProgram(Gdx.files.internal("vertexShader.vert"),Gdx.files.internal("fragmentShader.frag"));
shaderProgram.pedantic = false;
batch.setShader(shaderProgram);
shaderProgram.setUniformi("u_texture2",1);
Gdx.gl.glActiveTexture(GL_TEXTURE1);
displacement.bind();
Gdx.gl.glActiveTexture(GL_TEXTURE0);
//render method
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
image.draw(batch);
batch.end();
Мой фрагмент шейдера:
#ifdef GL_ES
#define LOWP lowp
precision mediump float;
#else
#define LOWP
#endif
varying LOWP vec4 v_color;
varying vec2 v_texCoords;
uniform sampler2D u_texture;
uniform sampler2D u_texture2;
void main(){
vec4 buf = texture2D(u_texture, v_texCoords);
gl_FragColor = buf;
}
Так я понял, что обе текстуры установлен на мой «образ», изменяя u_texture
к u_texture2
. Надеюсь, кто-нибудь может помочь, спасибо.