Java OpenGL屏幕大小的纹理映射四边形

问题描述

| 我有一个Java OpenGL(JOGL)应用程序,我正在尝试创建一个覆盖整个屏幕的纹理映射的四边形。在绘制一些像素到缓冲区后,我想将这些像素读入纹理并在屏幕上重画它们(应用片段着色器)。我将纹理映射到视口的代码是:
        gl.glMatrixMode(GL.GL_PROJECTION);                                        
        gl.glPushMatrix();                                                 
        gl.glLoadIdentity();                                               
        gl.glOrtho( 0,width,height,-1,1 );                          
        gl.glMatrixMode(GL.GL_MODELVIEW);                                  
        gl.glPushMatrix();                                                 
        gl.glLoadIdentity();
        IntBuffer ib = IntBuffer.allocate(1);
        gl.glEnable(GL.GL_TEXTURE_2D);
        gl.glGenTextures(1,ib);
        gl.glPixelStorei(GL.GL_PACK_ALIGNMENT,1);
        //buff contains pixels read from glReadPixels
        gl.glTexImage2D(GL.GL_TEXTURE_2D,GL.GL_RGBA,GL.GL_UNSIGNED_BYTE,buff);
        gl.glBindTexture(GL.GL_TEXTURE_2D,ib.get(0));
        gl.glBegin(GL.GL_QUADS);
        gl.glTexCoord2f(0,1);
        gl.glVertex2f(0,0); 
        gl.glTexCoord2f(0,0);
        gl.glVertex2f(0,height);
        gl.glTexCoord2f(1,0);   
        gl.glVertex2f(width,1);      
        gl.glVertex2f(width,0);
        gl.glEnd();
        gl.glBindTexture(GL.GL_TEXTURE_2D,0);
        gl.glPopMatrix();
        gl.glPopMatrix();
最终结果是一个四边形没有覆盖整个视口(部分打开),并且不包含缓冲区中的像素。我在这里做错了什么? 谢谢, 杰夫     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)