Шейдеры - сила! |
Сделал наконец нормальный пацанский ландшафт. С ЛОДом, с VBO, и детальными текстурами. Благодаря шейдерам можно раскрасить ландшафт одновременно четырьмя текстурами, вкратце, делается это так: Берется текстура в каждый из каналов которой (R, G, B и Alpha) ложится маска для определенной детальной текстуры. Шейдер, на основе этой композитной маски выбирает цвета из 4х текстур и складывает их в "общий" цвет. Потом, шейдер добавляет к этому цвету еще одну текстуру, которая формирует разные цветовые оттенки у детальных текстур. Это придает одним и тем же детальным текстурам разные цвета в разных участках ландшафта, например песок у кромки воды будет ярко-желтым и этот же песок у края леса будет уже с коричневатым оттенком. После этого, шейдер добавляем еще карту освещенности, затемняя участки ландшафта которые находятся в тени, и немного осветляя те, которые напрямую освещены солнцем. Результат - на скрине. PS: масштаб детальных текстур специально увеличен чтобы их было видно, на реальной рабочей карте масштабы меньше с такого расстояния уже не практически не видно деталей, зато если приблизиться поближе к земле, детали проступают очень сочно :) PPS: в данном случае, количество детальных текстур ограничено количеством текстурных блоков видеокарты (это то, что называется MAX_MULTITEXTURE_UNITS), у меня в этом примере их задействовано 6. Если еще немного постараться то можно обойти и это ограничение (не увеличивая количество проходов), но ессно, это будет немножко медленнее. B)
|
Просмотров: 611 |
Добавил: Barbanel |
Дата: 07 Апр 2007, 10:48:19
|