Добавлен prog,
опубликован
В данный момент по крупицам копится контент для крупного обновления, которое не стыдно было бы показать на главную, но сегодня произошел небольшой прорыв, о котором я просто не могу не рассказать.
Возможно кто-то помнит, как мне пришлось отказаться от переноса финальной покраски поверхностей в постобработку из-за того, что терялись данные при передаче в экранный фильтр. Признаюсь честно, оказалось что виной тому мои кривые руки - я пытался передавать через два 8-битных канала текстуры координаты в системе координат всего текстурного атласа и, естественно, терялась точность, в результате чего все замыливалось.
Решение оказалось простым до боли в зубах - делать только половину пересчета перед отправкой в экранный фильтр, а вторую половину пересчитывать уже в самом экранном фильтре. А именно - на уровне шейдера для геометрии теперь вычисляются координаты небходимого пикселя в текстурном атласе, но только в системе координат отдельной текстуры в атласе, а не всего атласа сразу, как это было раньше. Учитывая что используются текстуры размером всего 128*128 пикселей, двух 8-битных каналов хватает не только на координаты - туда влазит еще два флага дополнительных данных.
Экранный фильтр же, в свою очередь, добавляет к полученным координатам смещение по атласу, которое вычисляется на основе id текстуры, для передачи которого используется третий 8-битный канал. И остается еще четвертый 8-битный канал, который можно будет заполнить дополнительной информацией.
В результате, экранный фильтр получает на входе id текстур в атласе вместо цвета пикселей, что позволит в перспективе создавать основанные на этом визуальные эффекты. Ниже можно посмотреть на первые эффекты, реализованные с помощью фильтра:
Подсветка контуров это, естественно, далеко не предел возможностей экранного фильтра, особенно если использовать несколько проходов рендера, да и подсветку контура можно использовать разную для разных биомов или времени суток, но об этом в другой раз.
upd:
Добавил экспериментальный эффект разделения переднего и заднего слоя карты путем выделения контура.
Добавил экспериментальный эффект разделения переднего и заднего слоя карты путем выделения контура.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован prog
Небольшой эксперимент с фильтром на тему разделения слоев карты.
Ага. Что ж, ясно)
Посмотрим тогда, что дальше будет.