Site Loader

Импорт карты высот (heightmap) в Unity / Хабр

Всем привет! Не так давно (месяца два назад) мне пришлось импортировать карту высот (она же heightmap) в игровой движок unity. Все, что я нашарил в интернете — устаревшие статейки 2012 года. И да, официальные доки юнити тоже устарели…

Начнем с начала

Я снял еще видео и выложил на ютуб. Если ничего не понятно — смотрите здесь. Я создал проект, затем создаем новый террейн(3D -> Terrain)

новый проектновый террейнвот так он выглядит

Итак, ландшафт готов, самое время его сделать объемным

Можно использовать инструменты в инспекторе:

Но такой способ неудобен и подходит либо для создания маленьких карт, либо для редактирования уже готовых

Берем карту высот

Для начала надо взять образец карты в самом движке

Переходим в Settings(шестеренка справа)

И мотаем вниз

(P.S): чуть выше в графе terrain width и terrain height поставьте значения побольше(у меня это раз в 10)

Heightmap resolution — разрешение карты. Чем выше — тем карта точнее. Но острее. У меня стабильно 1025

Import Raw / Export Raw — кнопки для импорта/экспорта карты соответственно

Control texture resolution — «смешивание» текстур рельефа.

Я сам не знаю что это, поэтому я оставляю по умолчанию. Если что, потом методом тыка подкрутим

Ну и Base texture resolution — разрешение текстур. Чем все эти цифры выше — тем качественнее террейн. Ежу понятно…

В итоге мои значения такие:

Нажимаем Export Raw и…

Я оставил как есть. Затем просто нажимаем кнопку export и сохраняем карту. Идем дальше

Редактируем карту

Я сохранил карту(она должна быть в формате .raw). Затем открыл ее с помощью фотошопа.(просто нажал о ней ПКМ -> Открыть с помощью -> Photoshop)

Еще я скачал самую простую карту высот из интернета. Вот она:

Тоже открываю эту картинку в фотошопе -> ctrl + A -> ctrl + C

Переходим в файл с картой высот и ctrl + V

В итоге получается так:

(карту еще придется немного уменьшить)

Черной кистью удаляю все ненужное:

Затем ctrl + shift + S и выбираем формат . RAW

Возвращаемся в Юнити

Находим кнопку Import Raw

Вот она

И выбираем нашу RAW карту

Ничего не меняем и нажимаем Import

И тут такое…

Вполне возможно, что у вас будут либо штыки либо ничего. Не паникуем! Это мой горький опыт. Надо просто поменять цифры в настройках террейна

Было так

Мои шаги:

1) Я вернул значения с 10000 на 1000(в графах terrain width и height)

2) Terrain Height на 5000 вместо 600 по дефолту

3) Heightmap Resolution на 513 (у меня все было резко, острые края и т.д)

И вот итог:

Вдали вроде бы все размыто, но…Вблизи

Вывод

Как бы не была сложна технология, выход всегда есть. Более подробно на сделал на ютубе.

Сегодня я немного освежил технологию импорта карты высот в юнити и считаю это своим достижением.

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

С вами был я Всем пока 🙂

От карты высот до мира в Skyrim — Часть 1

Создание карты высот | Создание лодов для мира | Создание .

lod-файла

Автор статьи — девушка, потому все фразы построены от женского лица

Краткое содержание того, что я буду делать:

  • создание карты высот (Height map) в Photoshop, сохранение в TIFF
  • импорт в Geocontrol 2, чтобы сделать более реалистичную эрозию.
  • редактирование в Photoshop, чтобы уменьшить оттенки серого, сохранение в .RAW
  • запуск TESAnnwyn для создания .esp
  • (конверт .esp в .esm с помощью TESGecko)
  • изменение LOD воды, обычной воды и уровней земли в FNVEdit

Размер изображения в пикселях будет задавать размеры мира в Oblivion/Skyrim. Игра состоит из квадрантов, размеры которых 32 x 32 ячейки в каждом. Каждый квадрант состоит из 1024 x 1024 пикселей. Так, например, Skyrim состоит из 3808 x 3008 пикселей (и не все из них играбельны, к слову). Мир же может быть в размерах до 16 x 16 квадрантов (16384 x 16384 пикселей).

Есть несколько способов создать карту высот: нарисовать ее самому или, например, использовать специальные программы (такие как GeoControl, EarthEdit и др.

).

Ниже описан рабочий процесс создания мира размером 4096 x 4096 пикселей.

Photoshop (фш):

1. Я сделала свою карту высот в фш. Создайте новое изображение с выбранным вами размером (256х256/512х512/1024х1204). File (Файл) -> New (Новый), размер 4096 x 4096 pix, 16-бит и gray scale (оттенки серого).

(Так же можно изменить настройки уже готового изображения: Image (Изображение) -> Mode (Режим) -> gray scale (Оттенки серого) и 16-бит.)

2. Нарисуйте вашу землю, я делала это в слоях. Черные участки — это низменности, белые участки — это горы. На цветовой палитре вы можете выбрать оттенок серого в процентах. 100% — это черный, 0% — это белый, соответственно 50% серого имеет 50% черного и т.п.. Всякий раз, когда я говорю о процентах серого, я имею ввиду это:

(Oblivion и Skyrim не могут полноценно обработать полный спектр от черного до белого в карте высот, но я исправлю это в следующих шагах.)

При рисовании мира, хорошо бы знать, где будет находится уровень воды. Когда я рисовала свою карту высот в 100-2% оттенка серого, уровень воды будет между 89% и 90% оттенков серого. (Это значение будет позже изменено на 99-98%, когда я буду понижать оттенки до такого состояния, чтобы Skyrim мог их обработать.)

3. Убедитесь, что все слои сведены в изображении в один, сохраните файл в формат TIFF.

GeoControl

4. Импортируйте изображение в GeoControl2. Generation -> Terrain Import -> Image Import

GeoControl2 может обработать файлы размером до 4096×4096 пикселей. В GeoControl2 множество настроек, НЕ ПАНИКУЙТЕ.

5. (справа) Обратитесь к вкладке General, под ней будет -> Filter-> Add -> erosion system или erosion system inverse -> выберите тип эрозии, который вы хотите применить. Я использовала следующие: Thin flow deep — inverse (все уровни, силой 100), Thin flows sediment (только уровни 1024 и 2048, силой 40), Thin flow deep (все уровни, силой 100) и Mountain ridged (все уровни, силой 100).

6.   Нажмите Generate, это займет какое-то время в зависимости от вашего компьютера.

7. Когда все будет готово, нажмите Generation -> Terrain Export ->выберите TIFF 16 bit grayscale.

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

Photoshop

8. Откройте файл в фш, поверните изображение по вертикали (TESAnnwyn повернет обратно): Image (Изображение) -> Image Rotation (Повернуть изображение)-> Flip Canvas Vertical (Повернуть холст вертикально).

9. Последнее, что нужно сделать — это изменить уровень серого. Это связано с тем, что Oblivion/Skyrim считывает изображения с оттенками в интервале 0-76% серого.

Зайдите в Image (Изображение) -> Adjustments (Коррекция) ->  Brightness/Contrast (Яркость/Контрастность) и поменяйте яркость на -150, и затем еще раз повторите это.

10.  Проверьте с помощью Eyedropper (Пипетка), что ваши цвета находятся в пределах 75% серого.

11.  Сохраните как RAW с настройками: Header 0, IBM PC

Теперь ваша карта высот готова.

ВАЖНО: Важное правило для карт высот. Если изменение высот слишком большое, тогда в ячейках могут быть дыры!

Я провела несколько тестов, для того, чтобы увидеть, где будут разрывы в ячейках. На картинке ниже представлены различные диапазоны оттенков серого: 100-95%, 100-90%, 100-85% and 100-80%. Цветовая гамма представлена на 3 и 5 ячейках, и цветовые границы — те месте, где будут разрывы(*). Обратите внимание, что изменение в высоте на 100-90%  — практически вертикальная стена.

* Уровни воды будут между 99% и 98% оттенками серого на финальной карте высот.

TESAnnwyn: создание esp

Я использую TESAnnwyn (совместимую со Skyrim), чтобы сделать esp из raw файлов, куда проще, чем создание через Creation kit. TESAnnwyn — это консольная программа, которая проста в использовании:

TESAnnwyn. exe -i Skyrim -p 1 -b 16 -d 4096×4096 -x -64 -y -64 -h -22192 -w ameOfWorldspace YourImage.raw
  • -i — задает игру,
  • -p — определяет формат RAW,
  • -b — битность изображения, -d размер в пикселях,
  • -x и -y  смещение ячеек по осям x и y,
  • -h -22192 нижняя отметка земли, специфично для работы с лодами воды
  • -w — имя вашего мира.

Теперь перейдем к .esp в папке Skyrim/Data.

Чтобы лоды заработали как положено, нам надо изменить уровни воды и земли в мире. Сделать это можно в Creation kit или в редакторе Fallout New Vegas — FNVEdit (вам понадобиться копия Fallout New Vegas для работы).

Alt 1) Использование Creation kit (для .esp файлов)

Для маленьких миров вплоть до 4096×4096 пикселей можно использовать и редактировать мир в Creation kit.

  1. В Creation kit откройте ваш esp (сделайте активным)
  2. Перейдите на вкладку World -> Worldspace
  3. Выберите ваш мир и отредактируйте: LOD water height на -14000. 0000, Default Land Height на -27000.0000 и Default Water Height на -14000.0000
  4. Сохраните .esp.

Alt 2) Использование FNVEdit (для esp и .esm файлов)

Для большого мира, такого как мой с 106384×16384 пикселями, нет возможности открыть .esp в Creation kit.

1. Поместите esp в папку FalloutNewVegas/Data folder, откройте FNVedit и выберите файл.
2. Поменяйте LOD water height на -14000.0000, Default Land Height на -27000.0000 и  Default Water Height на -14000.0000.

3. Закройте FNVEdit и дождитесь сохранения. После у вас будет готов бэкап и сохраненный файл. Затем переименуйте файл обратно в .esm.

Всё готово, теперь можно приступать к созданию лодов.

Надеюсь, что описанный способ и у вас заработает. =)

/E

Обновления данных высокого разрешения для слоев высот Living Atlas World (июнь 2019 г.)

Living Atlas of the World предоставляет базовые слои высот и инструменты для поддержки анализа и визуализации на платформе ArcGIS.

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

Terrain и TopoBathy

Эти слои обновляются с помощью топографической лидарной высотной отметки голой земли:

  • Обновления 1-метровых ЦММ USGS 3DEP, покрывающих частичные территории совпадающих с США территорий
  • Лидарная ЦММ 0,25 метра, охватывающая кантон Базель-Ландшафт, Швейцария
  • Лидарная ЦММ 0,5 метра, охватывающая кантон Золотурн, Швейцария
  • Полученная с помощью лидара ЦММ 0,5 метра, охватывающая кантон Аргау, Швейцария

TopoBathy

Слой TopoBathy обновлен следующими наборами батиметрических данных:

  • NCEI NOAA 1/9 угловой секунды (~ 3 метра) DTM, покрывающие частичные районы вдоль восточного побережья США
  • NCEI NOAA 1/3 угловой секунды (~ 10 метров) DTM, покрывающие частичные районы вдоль восточного побережья США
  • NCEI NOAA 1 угловая секунда (~ 31 метр) DTM, покрывающие частичные районы вдоль северо-восточного побережья США
  • NCEI 3 угловых секунды NOAA (~ 93 метра) DTM, покрывающие частичные районы вдоль северо-восточного побережья США

В этом выпуске USGS 3DEP 1 метр получил значительное обновление, увеличив зону покрытия 1 м почти вдвое.

На приведенном ниже рисунке показано покрытие недавно добавленных (пурпурных) данных 3DEP 1 м вместе с ранее доступным (желтовато-зеленым) покрытием.

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

Хайленд, Калифорния, США — мелкие детали, полученные с помощью лидара USGS 3DEP, получены на 1 метр в пригородном ландшафте по сравнению со старым NED 10 метров

Обердорф, кантон Базель-Ландшафт, Швейцария — отображение мелких деталей с помощью данных лидара, полученных с расстояния 0,25 метра, по сравнению с WorldDEM4Ortho 24 метра

Лангендорф, кантон Золотурн, Швейцария — изображение мелких деталей городского пейзажа с помощью лидарных данных с расстояния 0,5 метра по сравнению с WorldDEM4Ortho 24 метра

Баден, кантон Ааргау, Швейцария — отображение мелких деталей холмистого ландшафта с помощью лидарных данных с шагом 0,5 метра по сравнению с WorldDEM4Ortho 24 метра

Эти обновления данных также будут развернуты для других продуктов, производных от мировых высот — Elevation 3D (Terrain3D и TopoBathy3D) и World Hillshade в следующем квартале (Q3).

Для получения дополнительной информации о различных источниках данных, доступных в сервисах World Elevation, ознакомьтесь с картой покрытия Elevation. Esri продолжит совершенствовать World Elevation Services, инструменты и производные продукты, включая данные высокого разрешения из открытого источника и программу Esri Community Maps. Кроме того, чтобы добавить данные о высотах с высоким разрешением в Living Atlas of the World, ознакомьтесь с программой Esri Community Maps for Elevation.

Раджиндер Наги

Раджиндер имеет более чем 19-летний опыт работы в области ГИС и дистанционного зондирования. В своей нынешней должности он возглавляет программу возвышения сообществ в Esri и имеет большой опыт в картографической визуализации, обработке изображений, базах данных и геообработке. Раджиндер разработал многонаправленный алгоритм затенения отмывки (esriurl.com/NextGenHillshade) для улучшения визуализации местности на базовых картах Esri. Он также разработал технику слияния (esriurl.

com/NAGIfusion), которая сохраняет детали и цвета при объединении цветных растров с отмывками. Раджиндер имеет степень магистра наук в области геоинформатики и степень бакалавра наук в области городского и регионального планирования.

Подключить:

3d карта высот — Etsy Турция

Etsy больше не поддерживает старые версии вашего веб-браузера, чтобы обеспечить безопасность пользовательских данных. Пожалуйста, обновите до последней версии.

Воспользуйтесь всеми преимуществами нашего сайта, включив JavaScript.

Найдите что-нибудь памятное, присоединяйтесь к сообществу, делающему добро.

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

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *