我对 OpenGL 比较陌生,当我将图像渲染为与图像大小相同的 QUAD 的纹理时遇到了一些问题。这是我的代码。如果有人帮助我解决这个问题,我将不胜感激。图像看起来更小并且被压扁。(顺便说一句,图像尺寸为 500x375)。
glGenTextures( 1, &S_GLator_InputFrameTextureIDSu );
glBindTexture(GL_TEXTURE_2D, S_GLator_InputFrameTextureIDSu);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D( GL_TEXTURE_2D, 0, 4, S_GLator_EffectCommonData.mRenderBufferWidthSu, S_GLator_EffectCommonData.mRenderBufferHeightSu, 0, GL_RGBA, GL_UNSIGNED_BYTE, dataP);
glBindTexture(GL_TEXTURE_2D, S_GLator_InputFrameTextureIDSu);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, S_GLator_EffectCommonData.mRenderBufferWidthSu, S_GLator_EffectCommonData.mRenderBufferHeightSu, GL_RGBA, GL_UNSIGNED_BYTE, bufferP);
//set the matrix modes
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
//gluPerspective( 45.0, (GLdouble)widthL / heightL, 0.1, 100.0 );
glOrtho (0, 1, 0, 1, -1, 1);
// Set up the frame-buffer object just like a window.
glViewport( 0, 0, widthL, heightL );
glDisable(GL_DEPTH_TEST);
glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glBindTexture( GL_TEXTURE_2D, S_GLator_InputFrameTextureIDSu );
//Render the geometry to the frame-buffer object
glBegin(GL_QUADS); //input frame
glColor4f(1.f,1.f,1.f,1.f);
glTexCoord2f(0.0f,0.0f);
glVertex3f(0.f ,0.f ,0.0f);
glTexCoord2f(1.0f,0.0f);
glVertex3f(1.f ,0.f,0.0f);
glTexCoord2f(1.0f,1.f);
glVertex3f(1.f ,1.f,0.0f);
glTexCoord2f(0.0f,1.f);
glVertex3f(0.f ,1.f,0.0f);
glEnd();