Добавлен , опубликован

21.05.2014

  • день пропущен

22.05.2014

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

Заметки

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

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

Для удобства работы текстура-атлас может быть представлена в виде 3D-текстуры или массива текстур вместо множества отдельных текстур-вариаций, каждая из которых содержит все текстуры атласа в одной вариации. Это необходимо т.к. каждому фрагменту карты назначается своя копия шейдерного материала и использование массива или 3D-текстуры позволяет передавать единственную ссылку на атлас в каждую копию шейдерного материала вместо передачи множества ссылок, каждая из которых соответствует одной вариации атласа.

Скриншоты

Перед вами промежуточный этап рендеринга - именно в таком виде кадр передается экранному фильтру, в обязанности которого входит наложение текстуры на эту "поверхность". Синий канал отвечает за смещение по y, а зеленый - по x. Смещение абсолютное в пределах текстуры-атласа.

Перед вами результат работы экранного фильтра в одной из реализаций. Нарекания вызывает наложение текстуры на землю, а отладочная информация там где должно быть небо это так и задумывалось.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
33
10 лет назад
0
А что такое 3D-текстура?
0
24
10 лет назад
0
Кет, считай то-же самое что и массив 2D текстур одинакового размера, только еще со смешиванием между слоями. На практике применяются довольно редко и жрут порядочно ресурсов. Массивы текстур появились позже и не на всем железе поддерживаются, но работают быстрее, да и смешивание между слоями не всегда нужно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.