Opengl 滚动纹理的GLSL着色器
如何在平面上滚动纹理? 所以我有一个带有纹理的平面,我可以使用着色器从右向左(无限)滚动纹理吗Opengl 滚动纹理的GLSL着色器,opengl,opengl-es,glsl,Opengl,Opengl Es,Glsl,如何在平面上滚动纹理? 所以我有一个带有纹理的平面,我可以使用着色器从右向左(无限)滚动纹理吗 使用设置纹理环绕模式 glTexParameteri(TextureID、L\u TEXTURE\u WRAP\S、GL\u REPEAT) 将名为Time的浮动均匀体添加到纹理着色器中 在获取纹理样本时,使用类似于texture2D(采样器,u+时间,v)的方法 使用代码中的计时器更新时间制服 下面是一个GLSL着色器: /*VERTEX_PROGRAM*/ in vec4 in_Vertex;
glTexParameteri(TextureID、L\u TEXTURE\u WRAP\S、GL\u REPEAT)
Time
的浮动均匀体添加到纹理着色器中texture2D(采样器,u+时间,v)
的方法时间
制服/*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) );
}