Всем привет!
Кто знает как работает текстурирование террейна в движке?
Вот что я сам понял. На примере локации Кордон:
1. Для всего террейна накладывается текстура terrain_escape.dds (gamedata/textures/terrain)
2. По карте деталей terrain_escape_det.dds происходит смешивание текстур. Для кордона это detail_grnd_asphalt, detail_grnd_grass, detail_grnd_earth, detail_grnd_yantar (gamedata/textures/detail). Ссылаются на эти текстуры с помощью материалов/шейдеров escape_asphalt, escape_grass, escape_earth, escape_yantar. Только не понял зачем нужна маска terrain_escape_mask и как используется. Там хранится информация о "дырках" на террейне. И где посмотреть исходники шейдеров escape_asphalt, escape_grass, escape_earth, escape_yantar?
3. Написал OpenGL-приложение и сделал в лоб. Использовал в качестве маски terrain_escape_det.dds и из каналов RGBA доставал значения цвета текстур detail_grnd_asphalt, detail_grnd_grass, detail_grnd_earth, detail_grnd_yantar. В RGBA подсовывал разные комбинации. Получилось так себе) Насколько я понял в движке используется многопроходное текстурирование. Без понятия как это делается.
Вся эта информация была добыта ковырянием SDK 0.4. Буду признателен если укажете куда копать дальше.
P. S. Не могу прикрепить больше скриншотов из за ограничения в размерах. Также приложил фрагментный шейдер где происходит смешивание. Вершинный шейдер тоже приложил но там все стандартно.
TerrainMultiTextureFragmentShader.glsl TerrainMultiTextureVertexShader.glsl