Можно ли сделать хороший фильтр Блума на iPhone? - PullRequest
1 голос
/ 18 апреля 2009

Я работаю над игрой для iPhone с простой векторной графикой, и хотя было бы очень хорошо, если бы объекты на экране светились (т. Е. К рендеру был применен фильтр Блума).

Я довольно новичок в методах постобработки, и большинство читаемых мной уроков используют шейдеры на GPU. Мне просто интересно, возможно ли это на аппаратном обеспечении iPhone, или все это должно быть сделано программно (в этом случае я предполагаю, что это будет слишком медленно для использования в реальном времени).

Ответы [ 3 ]

1 голос
/ 05 февраля 2010

Это определенно возможно даже на устройствах es1.

1) Отрисовать текстуру с освещенной геометрией, которая должна расцвести как чисто белый на черном фоне. Например, если камера находится в комнате, смотрящей на окно, и вы хотите, чтобы окно расцвело - визуализируйте только окно без текстур как чистый белый.

2) Создайте несколько копий этой текстуры, каждая из которых уменьшена до половины предыдущего размера

3) Рендеринг всех этих текстур, растянутых на весь экран поверх визуализированной сцены, с использованием аддитивного смешивания, корректируйте альфа каждого слоя, пока не получите нужное качество

По сути, шаги 2 и 3 - это эмуляция размытия по Гауссу в аппаратном обеспечении с использованием встроенной фильтрации текстур.

Итак, у вас есть геометрия источника света: белый на черном, размытый гауссиан, а затем добавленный к вашей сцене - вуаля, фальшивое цветение :)

0 голосов
/ 20 декабря 2011

Вы всегда можете взять снимок экрана и немного размыть его , как в этом посте , а затем просто использовать аддитивное смешивание, может работать?

0 голосов
/ 19 апреля 2009

Поскольку iPhone вообще не поддерживает шейдеры, я думаю, что фильтр Блума будет очень сложно реализовать. Некоторый многоходовой обман может привести к убедительной имитации в зависимости от сцены, но может быть слишком медленным.

Кроме того, «край» игры, кажется, использует эффект расцвета на экране паузы, но он статический, поэтому, вероятно, реализован в программном обеспечении.

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