我是OpenGL编程的新手。我在立方体的不同面上制作了一个带有不同图像的旋转立方体。我想为屏幕设置背景。任何帮助都将受到赞赏..
答案 0 :(得分:5)
绘制覆盖整个视口的纹理四边形。为此,请将投影和模型视图切换为标识并禁用深度测试。使用投影和模型视图时,顶点坐标[-1 ... 1]将覆盖整个视口。在代码中:
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);
答案 1 :(得分:4)
在我的项目中,所有创建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(...)
在
Renderer.onDrawFrame
答案 2 :(得分:-1)
我认为OP希望将他的代码转换为Android动态壁纸。
如果我错了,请在问题中更加准确。