Включить сглаживание в Opengl ES 2 (ios)

У меня проблемы с включением мультисэмплинга в IOS.

Я имею в виду это руководство

Если вы прокрутите вниз до

Перечисление 4-5, Создающее буфер мультисэмпла

Вы можете ясно видеть, что нам нужен (конечно) буфер разрешения. Тем не менее, он не показывает никакой инициализации на первом этапе. Мне просто нужно

glGenFramebuffers(1, &resolveBuffer);
glBindFramebuffer(GL_FRAMEBUFFER, resolveBuffer);

когда я должен инициализировать мой объект буфера кадра?

Также, последний шаг мне не понятен.

glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER];

где именно я должен это сделать? и что это делает? Я предполагаю, что после розыгрыша колл от моих fbo и vbo, но я не совсем уверен.

У кого-нибудь есть ссылка на какой-нибудь пример проекта, который я могу посмотреть? я погуглил но не могу найти 🙁

Наконец, я использую плавающие текстуры для рендеринга изображений HDR. Должен ли я сохранить GL_RGBA8_OES в этой инструкции?

glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height);

мне не очень понятно, если в этот момент я уже отрисовал текстуру.

заранее спасибо!

0

Решение

Вы используете тот же код, что и когда вы не используете мультисэмплинг. Затем вы добавляете дополнительный буфер кадра, используя мультисэмплинг в его буфере рендеринга. glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height) При рисовании вам нужно привязать буфер образца вместо исходного. Когда вы закончите рисование, вам нужно преобразовать буфер образца в исходный буфер:

glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, originalFrameBuffer);
glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFrameBuffer);
glResolveMultisampleFramebufferAPPLE();

На данный момент вы заполнили оригинальный буфер (originalFrameBuffer), и вы можете использовать его любым удобным вам способом, вы можете даже связать его и продолжить рисование, использовать его в качестве текстуры или, как в примере с Apple, представить содержимое буфера рендеринга в представлении.

0

Другие решения

Других решений пока нет …