У меня проблемы с включением мультисэмплинга в 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);
мне не очень понятно, если в этот момент я уже отрисовал текстуру.
заранее спасибо!
Вы используете тот же код, что и когда вы не используете мультисэмплинг. Затем вы добавляете дополнительный буфер кадра, используя мультисэмплинг в его буфере рендеринга. glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, width, height)
При рисовании вам нужно привязать буфер образца вместо исходного. Когда вы закончите рисование, вам нужно преобразовать буфер образца в исходный буфер:
glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, originalFrameBuffer);
glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFrameBuffer);
glResolveMultisampleFramebufferAPPLE();
На данный момент вы заполнили оригинальный буфер (originalFrameBuffer
), и вы можете использовать его любым удобным вам способом, вы можете даже связать его и продолжить рисование, использовать его в качестве текстуры или, как в примере с Apple, представить содержимое буфера рендеринга в представлении.
Других решений пока нет …