自从将硬件从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核心。
答案 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);