Настройка фона в OpenGL android - PullRequest
3 голосов
/ 27 января 2012

Я новичок в программировании OpenGL. Я сделал вращающийся куб с разными изображениями на разных гранях куба .. Я хочу установить фон для экрана .. Любая помощь будет оценена ..

Ответы [ 3 ]

5 голосов
/ 27 января 2012

Нарисуйте текстурированный квад, покрывающий все окно просмотра.Для этого переключите проекцию и вид модели на идентичность и отключите глубинное тестирование.Поскольку проекция и вид модели являются единичными, координаты вершин [-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);
4 голосов
/ 25 сентября 2013

В моем проекте весь код создания 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
0 голосов
/ 28 января 2012

Я думаю, что ОП хочет превратить свой код в живые обои для Android.

@ Sumit: если я прав, вы должны проявить должную осмотрительность: http://developer.android.com/resources/articles/live-wallpapers.html

Если яЯ ошибаюсь, тогда, пожалуйста, будьте более точны в своем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...