У меня есть проблема с рендерингом для текстурирования и внеэкранный кадровый буфер с OpenGLES
на iPhone.
(источник: imagehost.org)
(источник: imagehost.org)
Сначала отобразите выставочные мозаики маджонга, представленные к CAEAGLLayer
непосредственно и это корректно. Второй показывает мозаики, представленные внеэкранному кадровому буферу, скопированному для текстурирования использования glCopyTexImage2D
и структура, представленная к CAEAGLLayer
. Оба используют белую непрозрачную четверку для фона. Я также попытался представить непосредственно, чтобы текстурировать, но произвести, совпал с с внеэкранным кадровым буфером.
Мой код для создания кадрового буфера:
GLuint framebuffer;
glGenFramebuffersOES(1, &framebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
GLuint renderbuffer;
glGenRenderbuffersOES(1, &renderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, renderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_RGB8_OES,
512, 512);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES,
GL_RENDERBUFFER_OES, renderbuffer);
Я тяну все мозаики из атласа структуры с одним вызовом к glDrawElements
с помощью VBO для передачи чересстрочных данных вершины (координаты, координата текстуры, цвет). Я использую формат текстур RGBA8888, таща каждое изображение на двух треугольниках (четверка) с glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
стыковочная функция. Я не использую буфер глубины (во всех случаях).
Кто-то может сказать мне, какова могла быть проблема?