0
を使用することはできませんQOpenGLWidgetは、私は非常に基本的なシェーダを作成した複数のsampler2D
"#version 150\n"
"uniform sampler2D textureSampler;\n"
"uniform sampler2D maskSampler;\n"
"in mediump vec2 texc;\n"
"out highp vec4 fragColor;\n"
"void main() {\n"
" fragColor = texture2D(textureSampler, texc.st);\n"
" fragColor.x = texture2D(maskSampler, texc.st).x;\n"
" fragColor.y =0;\n"
"}\n";
それはありません
QOpenGLFunctions *f =this->context()->functions();
f->glActiveTexture(GL_TEXTURE0);
glBaseTexture->bind();
m_program->setUniformValue("textureSampler", 0);
0123:私のように最初のテクスチャをバインド両方のケースで
:仕事はそれが何の警告もないエラーが発生していません
と第二のテクスチャは次のようにバインドされます:私は最初のシェーダのためglMaskTextureをバインドする場合、問題はそのQOpenGlTextureにないので、それはOKに動作することを
f->glActiveTexture(GL_TEXTURE1);
glMaskTexture->bind();
m_program->setUniformValue("maskSampler", 1);
注意してください。
前もって感謝します!
'glBaseTexture'はQOpenGLTextureですか? – peppe
はい、glBaseTextureとglMaskTextureの両方がQOpenGLTextureポインターです –
貼り付けたコードが正しいように見えますが、問題は貼り付けられなかったコードにある可能性があります。これをApitraceまたは他のトレーサに入れて、描画を呼び出す前にGLの状態を確認することをお勧めします。 – peppe