Losing clarity

Started by
2 comments, last by Vortez 11 years ago

Hi,

I have a capture card (Blackmagic intensity pro) that is capturing the screen of another machine. I am capturing it as a texture fine (I can dump the texture to an image file). I am capturing 1280 x 720px.

I then create a 1280 x 720 quad and texture the quad using the texture. However, result has lost a lot of clarity, expecially with text.

I am using orthonormal projection

gluOrtho2D(0, mFrameWidth * iNumProjectors, 0, mFrameHeight);

Setting up the texture (I have tried both linear and nearest).


        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );

        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );

        //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );

Rendering code


                glBegin(GL_QUADS);

                    glTexCoord2f(1.0f, 0.0f);    glVertex2i(mFrameWidth - 1,    mFrameHeight - 1);    // Top right

                    glTexCoord2f(1.0f, 0.0f);    glVertex2i(0,                mFrameHeight - 1);    // Top left

                    glTexCoord2f(1.0f, 1.0f);    glVertex2i(0,                0);    // Bottom left

                    glTexCoord2f(1.0f, 1.0f);    glVertex2i(mFrameWidth,        0);    // Bottom right

                glEnd();

Not sure what else to try.

Advertisement

Drop the -1 from your coordinates, or you will project a your 1280x720 on a region that is 1279x719 pixels and this downscaling the image slightly.

I did try various combinations. This is what it looks like with:

                glBegin(GL_QUADS);
                    glTexCoord2f(1.0f, 0.0f);    glVertex2i(mFrameWidth,    mFrameHeight);    // Top right
                    glTexCoord2f(0.0f, 0.0f);    glVertex2i(0,            mFrameHeight);    // Top left
                    glTexCoord2f(0.0f, 1.0f);    glVertex2i(0,            0);    // Bottom left
                    glTexCoord2f(1.0f, 1.0f);    glVertex2i(mFrameWidth, 0);    // Bottom right
                glEnd();

and

        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

2013-03-25.png

You should use GL_NEAREST for this. Something is not to scale here, either you're drawing the image to small or bigger, or the image is at the wrong resolution, make sure your window client area is the right size, not the window itself, also make sure you're not using mipmap.

And why is the half right of the picture black???

More info on how your drawing it and the size of the window would help too.

This topic is closed to new replies.

Advertisement