воскресенье, октября 28, 2012

FastTerrain


Давно не писал в блог, надо поправить этот недочет. Докрутил до вполне приемлемого уровня рендер геометрии для GLES2, позволяющий за 1 проход и 2 текстуры выводить 4 типа материалов, смешанных по маске (256 градаций каждого типа) и с возможностью tile-инга. Обычно это делается за 2 или 4 прохода, у меня это получилось сделать за один.


На вход подается массив из 4 текстур (примеры из стандартной поставки Unity):



Так же готовится маска смешивания этих текстур. Для каждого типа поверхности рисуется grayscale-картинка:



Набросал утилитку, которая сшивает эти маски в одну с нормализацией:
Картинка снята с Unity, 4 канал не виден (alpha), но он там есть.

В момент старта, текстуры поверхностей сшиваются в один RGB24 атлас, который потом назначается материалу, наложенному на поверхность. Вся остальная магия происходит в шейдере (смешивание 4 частей текстуры из одного атласа на основе 4 цветовых каналов в маске):

Комментариев нет: