
Перепилил... ммм... ядро. Необъяснимым образом оно стало быстрей и красивей и генерирует теперь более правдоподобную форму О_о.
А че там не понятного то?
Смотри:
Первое я сделал текстуру. В этой текстуре 4 ряда и четыре колонки.
Ряды это текущая местность по высоте, а столбцы отображают деградацию текстуры от уклона, ведь чем больше уклон тем "хуже" выглядит поверхность.
Теперь по самому шейдеру.
1. В вертексном дополнительно передается мировой игрек не умноженный ни на че, это тот же игрек что и в хорсе.
2. В пиксельном происходит первичный анализ этой высоты для выбора строки в текстуре. Далее выбранная строка передается в функцию которая анализируя отклонение вектора нормали поверхности от вертикали определяет столбец текстуры.
Это если в кратце.
Но так на границах слоев, как по нормалям так и по высотом наблюдаются очень четкие и уродские швы. То мой шейдер производит смешивание сначала слоев по нормалям, а затем и по высотам.
Если все еще не понятно, то пость кусок моего шейдера, а я детально скажу, что в том куске происходит.