Для начала мне нужна была некая сцена, которую нарисовал прямоуольниками, спрайтами шариков, и шрифтом вот так:
Ну так это же страшно и брр... Ладно, как нам добиться эффекта посимпотичнее. Думаем, решаем что после мы это все сделаем интерлейсом. Пройдемся полосочками в режиме multiply, получаем:
Теперь можно работать над постпроцессом. Все, что мы сейчас нарисовали, засовываем в рендертаргет. Рендертаргет понадобится для того, чтобы сделать из него еще один, и оставить в том виде, что есть сейчас.
Открываем еще один рендертаргет, вчетверо меньшего разрешения и рендерим туда с горизонтальным блюром по гауссу содержимое главного рендертаргета, затем делаем с полученным тоже самое по вертикали:
Затем оставляем их впокое, берем первый, главный рендертаргет и проходимся шейдером, добавляя хроматизма, зависящего от расстояния пикселя от центра картинки, а также добавляем (опять таки в зависимости от того же расстояния) серого цвета. Таким образом картинка в центре более контрастная чем по краям, и без разложения цвета на составляющие:
Затем делаем радиальный блюр по гауссу. Также как и в предыдущем проходе, с добавлением хроматизма, делаем это в зависимости от расстояния. Чтобы уложиться в модель шейдеров 2.0, приходится опять делать блюр сначала горизонтальный, затем вертикальный. Ну что, вроде получается уже неплохо?
Теперь финальная сборка. Тут я прибегаю к небольшой хитрости, и жму все изображение по вертикали, чтобы получить черные полоски сверху и снизу. Это придает эффект кино. Сначала рисую вот этот, полученный мной рендертаргет с хроматизмом, затем тот, что получили раньше с добавлением, получая тем самым эффект свечения всего в кадре:
Все скриншоты сняты с грядущей 0.2.2 версии движка, который завелся после недавней поломки, связанной с довольно-таки глобальной переработкой. Но теперь quad стал еще мощнее и еще проще в использовании.
В частности существенно упрощена и переработана часть движка, связанная с рендертаргетами. Но об этом в следующих выпусках.
Хаха, а я полоски пытался через шейдер сделать, надо будет переписать)
ОтветитьУдалитьЧто квод завёлся - радует. А так, скорее бы уже следующий выпуск.
Полоски, возможно, и надо было делать через шейдер. однако, до момента появления полосок ни один шейдер не используется, поэтому сделал так. Разумеется так медленнее, ибо блендинг используется. Но так честнее. В шейдере это реалзовать было бы проще и даже красивше :)
ОтветитьУдалить