Terrain Bump 4+ Textures (без скрипта)
Добавлено: 11 май 2012, 12:01
Шейдер для наложения карты нормалей на ландшафт без использования скрипта как в примере http://sixtimesnothing.wordpress.com/2010/10/10/bump-mapping-for-built-in-unity-terrain/ и без ограничения на кол-во текстур.
Суть этого шейдера сводится к тому что он для материала 0 рисует текстурой 0 и накладывает нормаль с текстуры 1, для материала 1 рисует текстурой 2 и накладывает нормаль с текстуры 3, и т.д.
Инструкция по использованию:
Распаковать шейдеры в папку с ассетами проекта, настроить ладшафт как показано ниже
Текстуры должны следовать как диффузка/нормаль к ней/диффузка/нормаль к ней
Шейдер поддерживает спекулар карту, она берется из альфа канала диффузки
Если вы создаете ландшафт из скрипта, то не забудьте что номер материала теперь должен быть кратен 2
Минусы этого метода:
* Незначительно повышается Draw Calls из-за большего количества проходов шейдера
* Надо следить за тем чтобы не нарисовать на ландшафте неправильным материалом (нормалью)
* Использует более 8 регистров, что делает невозможным компиляцию под Flash
Download:
http://dl.dropbox.com/u/48301614/Shaders.zip
Насколько я знаю это единственный способ заставить стандартный ландшафт работать более чем с 4 картами нормалей.
Суть этого шейдера сводится к тому что он для материала 0 рисует текстурой 0 и накладывает нормаль с текстуры 1, для материала 1 рисует текстурой 2 и накладывает нормаль с текстуры 3, и т.д.
Инструкция по использованию:
Распаковать шейдеры в папку с ассетами проекта, настроить ладшафт как показано ниже
Текстуры должны следовать как диффузка/нормаль к ней/диффузка/нормаль к ней
Шейдер поддерживает спекулар карту, она берется из альфа канала диффузки
Если вы создаете ландшафт из скрипта, то не забудьте что номер материала теперь должен быть кратен 2
Синтаксис:
Используется csharp
float[] materials = new float[resolution, resolution, textures_count];
materials[x, y, material_number*2] = 1;
materials[x, y, material_number*2] = 1;
Минусы этого метода:
* Незначительно повышается Draw Calls из-за большего количества проходов шейдера
* Надо следить за тем чтобы не нарисовать на ландшафте неправильным материалом (нормалью)
* Использует более 8 регистров, что делает невозможным компиляцию под Flash
Download:
http://dl.dropbox.com/u/48301614/Shaders.zip
Насколько я знаю это единственный способ заставить стандартный ландшафт работать более чем с 4 картами нормалей.