Как добиться полного сглаживания сцены на iPhone - PullRequest
13 голосов
/ 11 января 2009

Я бы хотел добиться FSAA в моем приложении OpenGL ES на iPhone.

В настоящее время я делаю это путем рендеринга сцены в текстуру, которая в два раза больше ширины и высоты экрана. Затем я использую красивую функцию:

void glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height);

чтобы нарисовать изображение с измененным размером до разрешения экрана.

Есть ли лучший способ сделать это?

Обновление Bounty Добавлено Мне было интересно, учитывая, что сейчас январь 2010 года, есть ли лучший способ сделать это на телефонах 3GS версии 3.1 и т. Д.

Ответы [ 4 ]

8 голосов
/ 05 ноября 2010

Начиная с iOS 4.0, полноэкранное сглаживание напрямую поддерживается через расширение Apple до OpenGL. Основная концепция похожа на то, что вы уже делаете: рендеринг сцены в больший кадровый буфер, затем скопируйте его в кадровый буфер размером с экран, затем скопируйте этот буфер на экран. Разница заключается в том, что вместо создания текстуры и ее рендеринга в квад, операция копирования / выборки выполняется одним вызовом функции (в частности, glResolveMultisampleFramebufferAPPLE()).

Для получения подробной информации о том, как настроить буферы и изменить код для рисования, вы можете прочитать учебник в блоге Gando Games , который написан для OpenGL ES 1.1; * * * * * * * * * * * * * * * * * * * * * * * * * * на форумах разработчиков Apple .

Спасибо Берсаелору за , который указал на это в другом вопросе .

8 голосов
/ 25 февраля 2010

Для Gran Turismo на PSP разработчики достигли эффекта, аналогичного сглаживанию, перемещая изображение вперед и назад по одному пикселю на кадр (демонстрацию можно найти здесь: http://www.gtplanet.net/why-gran-turismo-psp-looks-so-good/), так что если iPhone не не поддерживает то, что вы ищете, это вариант.

3 голосов
/ 11 января 2009

Технически, графический процессор iPhone (PowerVR MBX Lite) должен поддерживать сглаживание. Однако, похоже, что текущие драйверы Apple OpenGL ES (по состоянию на январь 2009 г.) не предоставляют эту возможность Делать «ручной AA» так же, как и вы, - практически единственный путь.

2 голосов
/ 23 февраля 2010

http://iphonedevelopment.blogspot.com/2009/06/opengl-es-2-shaders.html?showComment=1245770504079#c6001476340022842908

iPhone OS 3.0 + OpenGL ES 2.0. Кто-нибудь видит лучшее сглаживание?

Звучит так, будто вы не можете сделать это аппаратно, поскольку вы не визуализируете в фрейм-буфер, а только текстуру, которую iPhone создает для вас.

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