フラグメントシェーダに2D(長方形)テクスチャを渡す必要があります。テクスチャ内のデータは、サンプラ内でユニフォームとして読み取られなければなりません。テクスチャで読み取られる値に応じて、ピクセルの色が変更されるか、変更されません。ここテクスチャデータがフラグメントシェーダのサンプラに渡されない
は、テクスチャやサンプラーをバインドするためのAPIで私のコードです:
//create texture and sampler
glEnable(GL_TEXTURE_2D);
GLuint CosineTexture;
glGenTextures(1,&CosineTexture);
glTexStorage2D(GL_TEXTURE_RECTANGLE,1,GL_RGBA,1440,1080);
glTexSubImage2D(GL_TEXTURE_RECTANGLE,0,0,0,1440,1080,GL_RGBA,GL_FLOAT,dataCosines1);
GLuint SensorCosines;
glGenSamplers(1,&SensorCosines);
glActiveTexture(GL_TEXTURE0 + 0);
glBindTexture(GL_TEXTURE_RECTANGLE,CosineTexture);
glBindSampler(0,SensorCosines);
、ここでは、テクスチャから受信して読むためのシェーダでは私のコードです:
uniform samplerRect SensorCosines;
...
float textureValue;
textureValue = texture(SensorCosines, Bin).r;
何も起こりません。だから、テクスチャがシェーダに渡されていないと思います。私の気持ちは、APIのサンプラーにバインディングテクスチャのレベルであることですが、エラーは何か分かりません。
私はシェイダーの詳細をいくつか表示しました。それで、ここにあります:uniform samplerRect SensorCosines; .... vec2ビン; ... Bin [0] = float(XCosines)+0.5; \t Bin [1] = float(YCosines)+0.5;ごめんなさい。ロバート – RobertB