2012-06-01 37 views
5

Làm cách nào để cuộn kết cấu trên mặt phẳng? Vì vậy, tôi có một mặt phẳng với kết cấu, tôi có thể sử dụng trình đổ bóng để cuộn sang trái từ phải (vô hạn) kết cấu trên đó không?Trình đổ bóng GLSL để cuộn kết cấu

Trả lời

10
  1. Thiết lập các kết cấu gói chế độ sử dụng

    glTexParameteri(TextureID, L_TEXTURE_WRAP_S, GL_REPEAT)

  2. Thêm đồng phục float tên Time để shader texturing bạn

  3. Sử dụng một cái gì đó giống như texture2D(sampler, u + Time, v) trong khi lấy mẫu kết cấu.

  4. Cập nhật đồng phục Time sử dụng một số bộ hẹn giờ trong mã của bạn.

Dưới đây là một 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)); 
} 
Các vấn đề liên quan