我已经看过这里发布的一些关于此事的问题,但仍然无法解决为什么我的2d HUD出现但让我的3D渲染世界消失了.
编辑:似乎2d场景正在控制整个屏幕所以我时不时地看到3D场景在2d场景中出现故障.因此即使我只渲染一个10 x 10像素的四边形,它也会渲染出来,然后将剩余的屏幕空白.
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0);
glMatrixMode(GL_MODELVIEW);
glViewport(0,0,x,y);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0,-0.5,-6.0);
glPushMatrix();
..Draw some 3d stuff...
glPopMatrix();
// Start 2d
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3f(0.0f, 255.0f, 1.0f);
glBegin(GL_QUADS);
glVertex2f(0.0, 0.0);
glVertex2f(10.0, 0.0);
glVertex2f(10.0, 10.0);
glVertex2f(0.0, 10.0);
glEnd();
Run Code Online (Sandbox Code Playgroud)
然后我交换缓冲区
这是我的代码的顺序.就像它使得3d空间然后使得2d空间反过来取消了3d空间.
我想使用OpenGL尽可能快地在屏幕上绘制像素数据(RGB /灰度值)的2D数组.像素数据经常变化.
我曾希望我能找到一个简单的函数,让我可以将指针推送到代表像素数据的数组,因为这可能是最快的方法.不幸的是,我没有找到这样的功能.
完成此任务的最佳方法是什么?
Android opengl-es查看问题.所以在openGL中,摄像头和视图的默认位置是0,0.如何设置视图和摄像机,使其与计算机屏幕坐标基本相同,顶部为0,0.我调用了gl.glOrthof(-screenWidth/2,ScreenWidth/2,-ScreenHeight/2,ScreenHeight/2).但我认为这是错误的.我还需要设置相机来查看整个区域.我不确定如何使用gl.glFrustumf来完成这项任务.