GLSL 着色器未设置为实例
本文关键字:设置 实例 GLSL | 更新日期: 2023-09-27 18:34:47
你好,谁能帮我处理这行代码? 我一直面临着这个未设置为实例错误的对象,并且StackOverflow的人也给了我这种方法来尝试。非常感谢!
string shader = @"#version 120
#version 150 compatibility
uniform sampler2D tex;
void main()
{
vec4 pixcol = texture2D(tex, gl_TexCoord[0].xy);
vec4 colors[3];
colors[0] = vec4(0.,0.,1.,1.);
colors[1] = vec4(1.,1.,0.,1.);
colors[2] = vec4(1.,0.,0.,1.);
float lum = (pixcol.r+pixcol.g+pixcol.b)/3.;
int ix = (lum < 0.5)? 0:1;
vec4 thermal = mix(colors[ix],colors[ix+1],(lum-float(ix)*0.5)/0.5);
gl_FragColor = thermal;
}";
GL.ShaderSource(m_shader_handle, shader);
https://www.opengl.org/wiki/Core_Language_(GLSL(#Version
#version 指令必须出现在着色器中的其他任何内容之前,空格和注释除外。如果 #version 指令没有出现在顶部,那么它假定为 1.10,这几乎肯定不是您想要的。
使用一个版本 120 或 150
尝试:
string shader = @"#version 150 compatibility // or 120 if you want
uniform sampler2D tex;