当前位置: 首页 > 知识库问答 >
问题:

GLSL着色滚动纹理

龙玺
2023-03-14

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

共有1个答案

阙新觉
2023-03-14

>

  • 设置纹理包装模式,使用

    GLTExParameterI(TextureID,L_TEXTURE_WRAP_S,GL_REPEAT)

    将名为time的浮动统一添加到纹理着色器中

    /*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) );
    }
    

  •  类似资料:
    • 我在Mac OSX下工作,试图通过GLSL着色器在立方体上映射图像。 我显示立方体(以及图像,当它不通过着色器时)的方法是: 正如你所看到的,我正在检查,在这个测试中,是否有一个着色器应用到我的对象上(它是一个包装,效果非常好) 如果没有着色器,我只启用GL_纹理_坐标_数组,如果有,我尝试将图像绑定到着色器中的采样2D均匀。 我使用的着色器非常简单:它只显示纹理。我在Quartz Compose

    • 我希望能够在GLSL片段着色器中组合两种纹理。我目前正在使用PyOpenGL,到目前为止我使用着色器所做的一切都很好。 当我尝试从片段着色器访问多个纹理时遇到困难,例如,以下着色器显示正确的纹理减去蓝色像素: 但是 导致空白屏幕。 我有一种感觉,问题可能在于我如何将纹理制服传递给着色器,但我一辈子都无法弄清楚为什么第一个纹理有效,而第二个纹理无效。下面是完整的程序。

    • 我正在努力发送多个纹理到一个单一的着色器,并有一个奇怪的问题,在着色器中的两个采样器似乎得到相同的纹理数据。我知道还有很多其他的多纹理问题和答案(这里有一些我已经读过很多次了1,2,3),但一些bug正在逃避我,我开始失去我的弹珠。我很有信心我已经把一切都安排好了,但显然还是有一些问题。 所以,目前我有形状,材料,纹理,和着色器类。我的shape类是执行实际绘制的父类。它有一个具有着色器和纹理数组

    • 我正在做一个游戏,我现在正在写一个着色器来反射光从一个物体,我不断得到错误消息: 任何帮助都将不胜感激。

    • 下面代码中的两个字符串 vertexShaderSource和fragShaderSource 是 WebGL 的着色器代码,着色器代码通过着色器语言GLSL ES编写,对于前端工程来说学习 WebGL,还需要学习一门新的语言着色器语言GLSL ES。关于着色器语言的学习,可以跟着课程一边写案例,一边去学习,这样更容易理解。 着色器语言用于计算机图形编程,运行在GPU中,平时所说的大多数语言编写的

    • 标准着色器 Unity 标准着色器是一个内置着色器,具有非常全面的功能。它可以用于渲染『真实世界』的对象,例如,石头、木材、玻璃、塑料和金属,并支持各种各样的着色器类型和组合。通过使用或不使用材质编辑器中的各种纹理插槽和参数,可以很容易地启动或禁用其功能。 标准着色器还包括一个称为 物理着色器(Physically Based Shading,PBS) 的高级光照模型。物理着色器以模拟真实世界的方