gltexcoord []。st不适用于新硬件

时间:2016-10-14 17:02:36

标签: c++ opengl glsl

自从将硬件从AMD切换到英特尔后,对AMD有用的东西似乎会给英特尔造成致命的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核心。

1 个答案:

答案 0 :(得分: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);