【问题标题】:gltexcoord[].st doesnt work on new hardwaregltexcoord[].st 在新硬件上不起作用
【发布时间】:2016-10-15 02:56:13
【问题描述】:

自从将硬件从 AMD 切换到 Intel 之后,在 AMD 上工作的东西似乎在 Intel 上导致了致命的 glsl 错误,我不得不将其注释掉:

gltexcoord[0].st 无法识别并破坏着色器。

我正在寻找替代方法的帮助,或者可能是这段代码的解决方法:

gl_TexCoord[0].s = r.x / m + 0.5;
gl_TexCoord[0].t = r.y / m + 0.5;

vec4 rS = texture(reflectionSampler, gl_TexCoord[0].st);

OpenGL 3.3、GLSL 3.3 - 顶点和片段着色器 3.30 核心。

【问题讨论】:

    标签: c++ opengl glsl


    【解决方案1】:

    gl_TexCoord 已从核心配置文件 GLSL 中删除。实现相同效果的最简单方法是在顶点着色器中定义输出变量vec2

    out vec2 texCoord;
    [..]
    texCoord.xy = vec2(r.x / m + 0.f, r.y / m + 0.5);
    

    片段着色器中的输入变量:

    in vec2 texCoord;
    [..]
    vec4 rS = texture(reflectionSampler, texCoord.xy);
    

    【讨论】:

    • Perfect :) 就像使用 gl_TexCoord 之前一样,我已经标记了你的答案!非常感谢,谢谢!
    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    相关资源
    最近更新 更多