Come scorrere una trama su un piano? Quindi ho un piano con una trama, posso usare uno shader per scorrere da sinistra a destra (infinito) la trama su di esso?shader GLSL che scorre trama
5
A
risposta
10
selezionare la modalità di spostamento struttura utilizzando
glTexParameteri(TextureID, L_TEXTURE_WRAP_S, GL_REPEAT)
Aggiungere l'uniforme galleggiante chiamato
Time
al tuo shader di texturingUsa qualcosa come
texture2D(sampler, u + Time, v)
durante il recupero del campione texture.Aggiornare l'uniforme
Time
utilizzando un timer nel codice.
Ecco uno shader GLSL:
/*VERTEX_PROGRAM*/
in vec4 in_Vertex;
in vec4 in_TexCoord;
uniform mat4 ModelViewMatrix;
uniform mat4 ProjectionMatrix;
out vec2 TexCoord;
void main()
{
gl_Position = ProjectionMatrix * ModelViewMatrix * in_Vertex;
TexCoord = vec2(in_TexCoord);
}
/*FRAGMENT_PROGRAM*/
in vec2 TexCoord;
uniform sampler2D Texture0;
/// Updated in external code
uniform float Time;
out vec4 out_FragColor;
void main()
{
/// "u" coordinate is altered
out_FragColor = texture(Texture0, vec2(TexCoord.x + Time, TexCoord.y));
}