Как изобразить скалы на местности?

12

Я пытаюсь найти лучший способ программно представить ландшафт в моей игре. Я рассматривал возможность использования карты высот (или сетки из равномерно распределенных вершин) для представления поверхности ландшафта и карты сплатов для обеспечения плавного текстурирования. Это будет работать для абсолютно гладкой местности, но проблема в том, как представить скалы и острые грани скал.

Сами скалы нужно будет визуализировать иначе, чем на остальной части местности. Например, они должны иметь различную (не растянутую) текстуру, видимую в передней части обрыва, но если бы я использовал для этого карту splatmap, было бы невозможно иметь достаточно отвесную поверхность утеса, где текстура обрыва полностью отделен от земли.

Картина говорит тысячу слов, так что ...

введите описание изображения здесь

Каковы общие способы хранения и / или рендеринга скал и других резких различий в высоте местности?

Роберт Фрейзер
источник
4
Вы заметите, что очень немногие игры на самом деле имеют по-настоящему вертикальные скалы, все они наклонены как минимум на одну единицу сетки сверху вниз. Рендеринг можно выполнить с помощью шейдеров Splat Map, которые учитывают этот наклон и вытягивают текстуру с боковой стенкой. Блоки, как на вашей картинке, добавлены в виде геометрии поверх карты высот, чтобы придать локальный вид.
Патрик Хьюз

Ответы:

7

Эта картина выглядит так, будто они используют дополнительную опору для создания утеса. Если вы хотите использовать простую карту высот для представления местности, это практически единственное решение. Хорошей новостью является то, что он обычно используется и работает нормально. Самое простое решение (с точки зрения программирования) - просто разместить дополнительные реквизиты в редакторе уровней. Если вы хотите получить фантазию, вы можете иметь инструмент, который автоматически выбирает из набора реквизита и формирует местность, чтобы соответствовать.

Вы можете предоставить средство для выдавливания граней на карте высот, которое даст вам идеальные вертикальные грани с небольшим дополнительным усложнением, но это вряд ли будет выглядеть очень хорошо и, вероятно, потребует размещения какого-либо дополнительного украшения в любом случае, чтобы прикрыть твердый край.

Последний вариант - полностью отказаться от карты высот и просто сделать вашу местность полной геометрией, но тогда вы потеряете прекрасную простоту карты высот.

Джейсон Моралес
источник