Ландшафт на основе карты высот с дорогой

12

Как лучше всего реализовать элемент детализации, например, дорогу, на местности, основанной на карте высот?

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

Обновление: это немного трудно увидеть на изображении, но дорога спускается с вершины карьера, чтобы сделать его основание.

Адам Кейн
источник

Ответы:

14

Что хорошо с изображениями, так это то, что они обычно включают до 4 каналов (красный, зеленый, синий и альфа). Поскольку для карты высоты требуется только одно измерение, вы можете просто использовать красный канал для хранения информации о высоте (у вас все еще есть 256 уровней для высоты), а затем использовать другие каналы для других целей (например, использование зеленого канала для отображения дорог). , синий канал для воды / влаги) и т.д ...

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

XGouchet
источник
1
Можно ли использовать изображение HDRI, поэтому числа с плавающей запятой можно использовать для хранения более точной информации о высоте?
Quazi Irfan
1
Изображение HDRI - это не формат файла, а концепция, но вы можете использовать определенные форматы файлов, чтобы обеспечить большую точность. В основном это будет зависеть от вашего аппаратного / программного обеспечения, но существует образ с плавающей запятой RG, который вы можете хранить на 32 или 64 битах. Но независимо от формата, если вы используете больше битов на канал, вы всегда можете преобразовать значения int в число с плавающей запятой, например: f = (v / 256.0) где f - это число с плавающей запятой, v текущее значение int
XGouchet
Является ли хорошей идеей хранить все статические объекты карты на карте (высоты)? как растительность, листва, дом? или указатели, где будет размещен другой объект? или какой-то другой способ существует?
Quazi Irfan
Я не буду хранить точное местоположение, но, возможно, просто информацию о плотности, а затем генерировать данные (растительность, дом и т. Д.) Из информации о плотности. Но лучший способ - поместить эти объекты вручную и сохранить их с помощью файла двоичных данных или файла описания xml
XGouchet
1
@iamcreasy, конечно, вы можете использовать карту высот, чтобы ваш дом касался пола, но вам нужно описать, как выглядит модель дома (стены, двери, любая мебель внутри), что не может быть описано в пикселях. Кроме того, информация о пикселях не даст вам точной ориентации, поэтому все ваши дома будут выровнены (что не будет казаться естественным или «красивым»).
XGouchet
1

Я делаю это так, чтобы отделить карту высот (я использую плавающие элементы, например, 513 * 513) и карту сплат («управляющая текстура»), для которой часто требуется большее разрешение (я использую 32-битные bmps, 512x512).

Карта высот создает сетку (ландшафт, треугольники).

Контрольная карта охватывает всю местность, и каждый из ее слоев (RGBA) говорит, сколько слов «Камень», «Грязь», «Дорога» и т. Д. Вы должны видеть на местности.

Таким образом, вы можете использовать редактор для: а) создания ландшафта и б) рисования ландшафта (с камнем, грязью, дорогой и т. Д.)

Выполните быстрое изучение «карты высот», «карты сплайтов высот» и т. Д. Для более подробного объяснения или загрузите, скажем, Unity3D, чтобы проверить, как это может работать в «реальности».

Valmond
источник