标题是我的问题。是否有任何替代的'绑定'布局限定符的OpenGL v 4. 1?
我正在使用MacOS和Xcode,所以如果我运行OpenGL 4.2,我会得到一个错误的glewinit说“丢失GL版本”。
如果我用OpenGL 4.1运行这段代码,当然,它不能识别“binding”关键字。
我的顶点着色器代码是:
# version 410
layout (location=0) in vec3 pos;
layout (location=1) in vec2 texCoord;
out vec2 tc;
uniform mat4 mv_matrix;
uniform mat4 proj_matrix;
layout (binding=0) uniform sampler2D samp; // not used in vertex shader
void main(void) {
gl_Position = proj_matrix * mv_matrix * vec4(pos, 1.0);
tc = texCoord;
}
我的片段着色器代码是:
# version 410
in vec2 tc; // interpolated incoming texture coordinate
out vec4 color;
uniform mat4 mv_matrix;
uniform mat4 proj_matrix;
layout (binding=0) uniform sampler2D samp;
void main(void) {
color = texture(samp, tc);
}
1条答案
按热度按时间vlju58qv1#
您只需:
删除布局限定符(包括位置分配)(_R)。如下所示:
均匀采样器2D采样;