5
如何在平面上滾動紋理? 所以我有一個紋理的飛機,我可以使用着色器從右側(無限)向上滾動紋理嗎?滾動紋理的GLSL着色器
如何在平面上滾動紋理? 所以我有一個紋理的飛機,我可以使用着色器從右側(無限)向上滾動紋理嗎?滾動紋理的GLSL着色器
安裝使用
glTexParameteri(TextureID, L_TEXTURE_WRAP_S, GL_REPEAT)
添加一個名爲Time
浮統一到您的紋理着色器
使用類似texture2D(sampler, u + Time, v)
而獲取紋理採樣紋理包裝模式。
使用代碼中的某個計時器更新Time
制服。
這裏有一個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));
}