openglandroid中的背景设置
我是OpenGL编程新手。我制作了一个旋转立方体,立方体的不同面上有不同的图像。我想为屏幕设置背景。任何帮助都将不胜感激。绘制一个覆盖整个视口的纹理四边形。为此,请将投影和模型视图切换到identity并禁用深度测试。当投影和模型视图为标识时,顶点坐标[-1…1]将覆盖整个视口。代码:openglandroid中的背景设置,android,opengl-es,Android,Opengl Es,我是OpenGL编程新手。我制作了一个旋转立方体,立方体的不同面上有不同的图像。我想为屏幕设置背景。任何帮助都将不胜感激。绘制一个覆盖整个视口的纹理四边形。为此,请将投影和模型视图切换到identity并禁用深度测试。当投影和模型视图为标识时,顶点坐标[-1…1]将覆盖整个视口。代码: glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW)
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
GLfloat tex_quad[16] = {
/* x, y, s, t */
-1, -1, 0, 0,
1, -1, 1, 0,
1, 1, 1, 1,
-1, 1, 0, 1
};
glVertexPointer(2, GL_FLOAT, sizeof(GLfloat)*4, &tex_quad[0]);
glTexCoordPointer(2, GL_FLOAT, sizeof(GLfloat)*4, &tex_quad[2]);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, background_image_texture_ID);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDisable(GL_TEXTURE_2D);
我认为OP想把他的代码变成android live墙纸 @苏米特:如果我是对的,你应该尽你应有的努力:
如果我错了,那么请更准确地回答您的问题。在我的项目中,所有创建代码GLSurfaceView如下所示:
glSurfaceView = ...
glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
glSurfaceView.setBackgroundResource(R.drawable.my_background);
glSurfaceView.setZOrderOnTop(true);
glSurfaceView.setRenderer(...);
glSurfaceView.setRenderMode(...);
注意:请勿使用
_glSurfaceView.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.my_background));
我在这上面浪费了几天时间
不要打电话
gl.glClearColor(...)
在
错误:E/libEGL:called unimplemented OpenGL ES API请注意,如果在SurfaceView上有某些内容,则使用glSurfaceView.setZOrderOnTop(true)会导致UI中出现重叠状态
Renderer.onDrawFrame