0

こんにちは、このコード行を手伝ってくれる人はいますか? インスタンスエラーに設定されていないこのオブジェクトに直面していたので、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);
4

1 に答える 1

1

https://www.opengl.org/wiki/Core_Language_(GLSL)#バージョン

#version ディレクティブは、空白とコメントを除いて、シェーダー内の他の何よりも前に表示する必要があります。#version ディレクティブが先頭に表示されない場合は、1.10 が想定されますが、これはほぼ間違いなく、必要なものではありません。

1 つのバージョン120または150を使用する

試す:

string shader = @"#version 150 compatibility // or 120 if you want

uniform sampler2D tex;
于 2013-10-11T06:19:13.360 に答える