gpt4 book ai didi

opengl - 滚动纹理的 GLSL 着色器

转载 作者:行者123 更新时间:2023-12-04 13:53:03 24 4
gpt4 key购买 nike

如何在平面上滚动纹理?
所以我有一个带有纹理的平面,我可以使用着色器从右(无限)滚动它上面的纹理吗?

最佳答案

  • 使用设置纹理环绕模式
    glTexParameteri(TextureID, L_TEXTURE_WRAP_S, GL_REPEAT)
  • 添加名为 Time 的 float 制服到您的纹理着色器
  • 使用类似 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) );
    }

    关于opengl - 滚动纹理的 GLSL 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847985/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com