Как динамично розкрасить планету рельеф которой может изменяться?

Делаю планету, рельеф которой можно изменять на лету... там гора выросла, а там все вода затопила и т.д. Сама планета готова, но теперь нужно правильно наложить текстуру, а точнее 4 текстуры:
- песок
- земля
- трава
- скалы
Хотелось бы делать это в зависимости от текущей высоты рельефа для данной точки. Вот тут мне удалось достичь похожего эффекта(лучше смотреть на драконе). Пытался делать аналогично в Unity3D и оно почему то не взлетело. Я над этим пока работаю, а пока мне интересно какие еще есть идеи для подобного эффекта?
  • Вопрос задан
  • 2554 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Вам нужен splatmapping. Сначала делаете карту высот и сплатмап. Карта высот это обычная одноканальная текстура, в каждом пикселе которой указана высота. В разных каналах сплатмапа лежит информация о наличии определённого типа местности в каждой точке. Когда нужно поменять рельеф, рисуете на двух тестурах. Или меняете только карту высот, а по ней создаёте карту местности. Потом в шейдер запихиваете все карты и текстуры местности, сверяетесь с картами и блендите текстуры в нужной пропорции. На кратинке ниже слева готовый результат, справа сплатмап.

splatmap.jpg
А вообще, лучше возьмите готовое решение в магазине, там есть и карты высот, и сплатмапы, и планетарный шейдер. Ещё советую поиграть с World Machine, чтобы лучше понять как связаны разные карты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы