0

2 台のカメラ (各画像は 8 ビット グレースケール) から画像を取得し、それらの画像をテクスチャにアップロードします。次に、オーバーレイされたテクスチャを描画して、1 つの画像から 50%、別の画像から 50% にしたいのですが、必要な結果が得られない理由がわかりません。

以下は、アルファ ブレンディングのセットアップです。

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);  // Alpha Blending

テクスチャを更新するには:

glTexImage2D(GL_TEXTURE_2D, 0, GL_INTENSITY, g_Image[g_iCounter].GetCols(), g_Image[g_iCounter].GetRows(), 0, GL_RED, GL_UNSIGNED_BYTE, g_Image[g_iCounter].GetData()); 

g_ImageFlyCapture2 画像 (Point Gray SDK) でGetCols() / GetRows()あり、画像のサイズGetData()、生データ ポインターを返します。これは問題なく動作します。画像を並べて表示したい場合、これはまさに私が望むことです。

私の描画コード:

glBindTexture(GL_TEXTURE_2D, texture2);
        glBegin(GL_QUADS);
        // Front Face
        glTexCoord2f(left, bottom);     glVertex3f(-1.0f, -1.0f,  0.5f);
        glTexCoord2f(right, bottom);    glVertex3f( 0.0f, -1.0f,  0.5f);
        glTexCoord2f(right, top);       glVertex3f( 0.0f,  1.0f,  0.5f);
        glTexCoord2f(left, top);        glVertex3f(-1.0f,  1.0f,  0.5f);
        glEnd();

        if(interleaved)
        {
            top = 0.0f;
            bottom = 1.0f;
            left = 0.0f;
            right = 1.0f;

            glColor4f(1.0, 1.0, 1.0, 0.5);
            switch(flags1)
            {
                case 0: break;
                case 1: left = 1.0f; right = 0.0f; break;
                case 2: top = 1.0f; bottom = 0.0f; break;
                case 3: top = 1.0f; bottom = 0.0f; left = 1.0f; right = 0.0f; break;
                default: break;
            }
            glEnable(GL_BLEND);
            glBindTexture(GL_TEXTURE_2D, texture);
            glBegin(GL_QUADS);
            // Front Face
            glTexCoord2f(left, bottom);     glVertex3f(-1.0f, -1.0f,  0.5f);
            glTexCoord2f(right, bottom);    glVertex3f( 0.0f, -1.0f,  0.5f);
            glTexCoord2f(right, top);       glVertex3f( 0.0f,  1.0f,  0.5f);
            glTexCoord2f(left, top);        glVertex3f(-1.0f,  1.0f,  0.5f);
            glEnd();
            glDisable(GL_BLEND);
        }
    }

ただし、これにより常に両方の画像が表示されますが、最初に描画された画像が常によりよく見える画像になり、50/50 ブレンドではありません。50/50 にするために何を変更する必要がありますか?

4

1 に答える 1

0

それらを重ねて描かないでください。ひげだけで、2番目をカメラに少し近づけます。約の違いは0.000001それを行う必要があります。

于 2013-01-22T10:06:24.700 に答える