Как лучше всего реализовать элемент детализации, например, дорогу, на местности, основанной на карте высот?
Обновление: это немного трудно увидеть на изображении, но дорога спускается с вершины карьера, чтобы сделать его основание.
Что хорошо с изображениями, так это то, что они обычно включают до 4 каналов (красный, зеленый, синий и альфа). Поскольку для карты высоты требуется только одно измерение, вы можете просто использовать красный канал для хранения информации о высоте (у вас все еще есть 256 уровней для высоты), а затем использовать другие каналы для других целей (например, использование зеленого канала для отображения дорог). , синий канал для воды / влаги) и т.д ...
Таким образом, вы можете быть уверены, что когда вы строите свой ландшафт, зоны, где должна быть построена дорога, будут плоскими, а не следуют градиенту высоты.
Я делаю это так, чтобы отделить карту высот (я использую плавающие элементы, например, 513 * 513) и карту сплат («управляющая текстура»), для которой часто требуется большее разрешение (я использую 32-битные bmps, 512x512).
Карта высот создает сетку (ландшафт, треугольники).
Контрольная карта охватывает всю местность, и каждый из ее слоев (RGBA) говорит, сколько слов «Камень», «Грязь», «Дорога» и т. Д. Вы должны видеть на местности.
Таким образом, вы можете использовать редактор для: а) создания ландшафта и б) рисования ландшафта (с камнем, грязью, дорогой и т. Д.)
Выполните быстрое изучение «карты высот», «карты сплайтов высот» и т. Д. Для более подробного объяснения или загрузите, скажем, Unity3D, чтобы проверить, как это может работать в «реальности».
источник