XMeshCore — утилита для создания мешей и редактирования высот аэродромов — Создание сценариев

Нижайший поклон! Некоторых моментов не знал! Спасибо!!! Ждем продолжение!!!

Потихоньку обновляются утилиты от Супника. DSFTool теперь может и обратно паковать растровый слой высот. Теперь понятно значение высоты -32768.000000000 — там где такая высота точки, движок берёт значение из растрового слоя.

Потихоньку обновляются утилиты от Супника.

Откуда инфа?

Откуда инфа?

Отсюда http://developer.x-plane.com/

Продолжаю туториал.

3. Работа с программой

Мы имеем все необходимые файлы ресурсов и можем начать создание полного DSF файла сценария. Сначала я рекомендую создать следующую структуру папок:

Clipboard01.jpg

В папке 01_DSF будет производиться обработка сгенерированного DSF в случае изменения профиля ВПП. В папке 02_HGT будем выполнять сборку DSF из файлов ресурсов с помощью MeshTool. В папке water будут располагаться shape-файлы водной поверхности, в папке terrain — GEOTiff текстуры соответственно.
Теперь обращаю Ваше внимание на изменение, которое произошло при переходе на версию 2.3. По-причинам от меня не зависящих, полноценная работа с MeshTool, размещённым в папке с программой, затруднительна. Начиная с версии 2.3 MeshTool.exe и соответствующая ему папка config должны находиться в директории, где будет происходить генерация меша! В нашем случае это папка 02_HGT.
Итак, копируем все наши файлы по соответствующим папкам. Окончательный вид на содержимое папок:

Clipboard02.jpg
Clipboard03.jpg

Clipboard04.jpg
Clipboard05.jpg

Ранее я забыл упомянуть про Climate-файл, необходимый для MeshTool. Его берём со страницы загрузки X-Plane http://update.x-plane.com/MeshTool/ и копируем в папку 02_HGT, как видно на рисунке выше. В папке 01_DSF находится файл +45+006.dsf. Это может быть старый файл из GlobalScenery, но если мы будем создавать меш с нуля, то содержимое файла не принципиально — программе важно привязаться к имени файла, поэтому я скопировал сюда скачанный climate-файл и поменял ему разрешение на dsf.
Распоковываем XMeshCore в любую папку и запускаем. Нажимаем Set DSF file и выбираем файл DSF из папки 01_DSF:

Clipboard07.jpg

В данном примере я буду использовать все три возможности программы: 1) изменять высоту и профиль ВПП; 2) добавлять ортофотополигоны на весь квадрат +45+006; 3) генерировать водную поверхность.
Разберёмся сначала с ВПП. Для начало необходимо ввести в первую таблицу координаты полигона с указанием высот, внутри которого будет произведено редактирование меша. Координаты берём из любого GIS редактора — например из WED или SASPlanet. Не менее 4х вершин:

Clipboard08.jpg

Теперь необходимо заполнить вторую таблицу. Проще всего это сделать, перейдя на вкладку Runway и задать профиль, указанием координат начала и конца ВПП, соответствующие высоты в этих точках, а также ширину ВПП. Если не указывать промежуточные точки в таблице Runway profile программа создаст линейный профиль полосы, если указывать — то произойдёт интерполяция сплайном. Как мы видим ниже, что бы получить такой профиль мне понадобилось всего 4 дополнительные точки:

Clipboard10.jpg

В полях Length и Width Density указываем число точек, на которое будет разбита площадь ВПП. Нажимаем Fill Table – в графическом окне контролируем полученный профиль, а так же, в полях Runway Heading и Runway Length, проверяем длину и направление ВПП, соответственно. Если теперь вернуться на первую вкладку, можно увидеть заполненную вторую таблицу:

Clipboard11.jpg

При таком количестве точек параметры NQ и NW можно выбрать по-больше. Выбор интерполирующей функции я пока не могу порекомендовать — всё зависит от конкретного случая. Итак, нажатием Draw, мы можем увидеть поверхность, которая должна будет получиться при обработке DSF. Хочу сказать, что здесь всегда берётся прямоугольная область параллельная экватору и мередианам исходя из мин-макс значений долготы и широты полигона редактирования:

Clipboard12.jpg

Теперь переходим на третью вкладку где будем генерировать новый меш. Перед этим хочу напомнить, что в любой момент можно сохранить все параметры программы нажав на Save Session и, соответственно, загружать настройки потом.
На вкладке MeshTool Features указываем исходный файл SRTM данных, указываем префиксы в именах TIF и Shape-файлов, указываем количество таких файлов:

Clipboard13.jpg

В моём случае имеется 17 на 12 ортофототекстур и один shapefile. В комбобоксе выбираем тип генерированной воды: No Water – вода будет закрыта текстурой; Solid Water – вода будет видна через прозрачный альфа слой текстуры(если таковой имеется), но самолёты не смогут садиться на неё; Wet Water – обычная вода (если в текстурах есть прозрачный альфа слой). Если будем генерировать DDS текстуры с помощью MeshTool сразу, отмечаем Create DDS, если нет — то нужно будет перепаковать текстуры самому. В полях Max Error и Number of Points указываем базовые параметры MeshTool (читаем документацию).
Так как мы уже подготовили профиль полосы и хотим использовать эту функцию, то отмечаем Use Mesh Correction и выбираем плотность заполнения необходимой нам области по двум координатам. Чем больше поверхность отличается от прямой, тем на более число точек необходимо разбить площадь редактирования. Как видим, для Куршавеля, а это один из сложных вариантов, достаточно указанных выше параметров. Когда всё готово нажимаем Get Script – будет сгенерирован готовый скрипт для использования c MeshTool. Отмечу, что программа не проверяет на данном этапе, существуют-ли у вас указанные файлы.
После генерации скрипта нажимаем Get DSF. Пока я не смог перехватить весь лог сообщений из MeshTool, поэтому целесообразно проверить запуск и выполнение утилиты в диспетчере задач. Как правило, создание DSF занимает от 2 минут и выше (если отметели Create DDS и имеется много текстур — то десятки минут). В случае если MeshTool не запускается или сразу вылетает я создал кнопку Copy MeshTool parameters to clipboard for tracing, нажав на которую копируем в буфер обмена параметры запуска утилиты. Теперь, открыв командную строку в папке с MeshTool, можно вызвать утилиту и посмотреть полный вывод сообщения об ошибке.
После успешного выполнения в папке 02_HGT получаем новый DSF файл, а в папке terrain – сгенерированные файлы *.ter, необходимые для привязки текстур:

Clipboard16.jpg

Clipboard17.jpg

Папку DUMP удалять не нужно, так как она содержит информацию о границах DSF, для обеспечения совместимости, если Вы будете позже генерировать соседние квадраты.
Далее копируем полученный DSF в первую папку, дав ему имя исходного файла (удалив исходный). Указываем минимальную и максимальную высоту поверхности в данном квадрате. Для моего случая это 150 — 5000 м и последовательно нажимаем на первой вкладке 1. Convert to TXT; 2. Edit; 3. Convert to DSF.

Clipboard19.jpg

Получаем в первой папке файл mod_******.dsf, который потом переименовываем и копируем в Custom Scenery создав структуру папок как указано в первой части туториала. Не забываем скопировать в папку terrain файлы *.ter и *.dds. Последние, если мы не создавали их на этапе генерации меша, необходимо реконвертировать в XGrinder из первоначальных png текстур (не из GEOTiff!!!).

Clipboard18.jpg

На этом пока всё. Отмечу только, что сейчас я веду переписку с Супником по поводу странностей, которые не дают использовать этот метод для X-Plane 10 и которых не должно быть по его же словам, а также возможность добавления моего кода в DSFTool будущей версий. Правда попросил пока подождать, так как у них там сейчас более важные проблемы решаются. Так же упомянул ему про аэродром товарища Sergey747, посмотрим, может что-то изменят.

И, собственно, сама программа Прикрепленный файл
 XMeshCore2.3.zip   640.93К
  31 Количество загрузок:

Повторюсь, что это только новый exe, сама программа находиться вот здесь http://depositfiles….files/dtgawhyw7
ReadMe пока не переписывал — сделаю позже.

Rhard, спасибо, что работаете по этой теме. Весьма и весьма нужная утилита!

На днях задумал строить новый порт и испробовал на себе версию 2.2.

«Плотный меш» пока не делал, так как акваторию все равно не перестраивал (а при строительстве кастомного меша он будет ещё и без оверлея), то правил дефолтный меш. Как правильно заметили, при дефиците вершин меша это где то на грани искусства))

В общем с помощью функции «рунвейпрофиль» аппроксимироал нужный профиль буквально в 2 клика. Поигрался с параметрами аппроксимирующей функции. Вот только, пока не вкурил что «всегда берётся прямоугольная область параллельная экватору и мередианам исходя из мин-макс значений долготы и широты полигона редактирования«, чуть мозг не вынес) Да и отображается поверхность вроде в зеркальном виде или как, короче меш получается не совсем таким.
Ещё прога вылетела при задании 2 одинаковых точек в таблице Runway profile.
А так, остался весьма доволен.

P.S. За туториал отдельный thanks!

Так же упомянул ему про аэродром товарища Sergey747, посмотрим, может что-то изменят.

:) Спасибо.

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

Сорри, иногда мои формулировки не совсем простые, спешу. Смысл очень прост. Редактирование происходит точно по контуру полигона, заданного первой таблицей, а вот отображение нажатием Draw нет. Какую бы Вы область не использовали, отображаться будет всегда описанный прямоугольник. Ну не смог я его пока обрезать его нужным образом. Так что нужно в уме представить — где то там внутри Ваша область))). Обещаю подумать над этим ещё. Зеркальности быть не должно. В будущем (если это действительно нужно будет) большинство кнопок на графической панели будут рабочими, так что сможете вертеть область как хотите.

Так что нужно в уме представить — где то там внутри Ваша область))).

Вот это до меня и не сразу дошло, когда меш правил, но прочитал об этом только сегодня. Нормально сформулировано, просто я наверное не прочитал инструкцию сразу перед использованием проги)

В будущем (если это действительно нужно будет) большинство кнопок на графической панели будут рабочими, так что сможете вертеть область как хотите.

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

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

Сделаю. Сейчас поверхность повёрнута на 60 градусов по часовой стрелке от нормального географического отображения — таким образом север находится примерно в правом верхнем углу окна.

Прикрепленный файл
 XMeshCore.2.3.02.zip   640.96К
  90 Количество загрузок:
Теперь поверхность рисуется по контуру редактирования.

Спасибо ещё раз, остался весьма доволен программой при правке меша. Не большой фотоотчёт)

Изображение

Изображение

Спасибо ещё раз, остался весьма доволен программой при правке меша. Не большой фотоотчёт)

Всегда рад. Скажите, а вот то уродство на краях полигона ни как не смогли убрать? И как оно получилось в реале? Или так было задумано?
Пробовали запустить сценарий в 10ке?

И ещё, у вас полоса в окне программы просчитана с курсом 42, да и в граф окне видно что чуть не так идёт. Это тоже специально задумано, или ошиблись с вводом координат торцов полосы. Или программа не правильно считает?

1.то уродство на краях полигона ни как не смогли убрать?
2. И как оно получилось в реале?
3.Пробовали запустить сценарий в 10ке?
4.И ещё, у вас полоса в окне программы просчитана с курсом 42, да и в граф окне видно что чуть не так идёт. Это тоже специально задумано, или ошиблись с вводом координат торцов полосы. Или программа не правильно считает?

1. Уродство было намного больше, но я поигрался с параметрами функции и свёл до того что на скрине. В этом месте лес. Он будет метров на 5 выше, ну и хрен с ним, все равно на такой площади не заметно) Да и по SRTM в том месте как раз возвышенность. На графике это явно выражено, но реально это всего 5 метров.
2. В реале получается не совсем то что на графике, строго говоря — погрешность около 2-3 метров, но если честно сказать — получилось подозрительно с точностью до наоборот, тоесть перепутаны высоты торцов и экстремум профиля ВПП смещён к противоположному торцу. Хотя на графике отображено правильно)
3. 10 ку не юзаю по причине отсутствия у меня глобального ландшафта, глюков в графике и отсутствия полноценных инструментов под неё)
4. Координаты торцов вводил с максимальной точностью для 15 зума в Гугл. График рунвейпрофиля несовсем реалистичный — пытался немного компенсировать неточность получившегося меша.

ИМХО для дефолтного меша получилось и так не плохо.

1. Уродство было намного больше, но я поигрался с параметрами функции и свёл до того что на скрине. В этом месте лес. Он будет метров на 5 выше, ну и хрен с ним, все равно на такой площади не заметно) Да и по SRTM в том месте как раз возвышенность. На графике это явно выражено, но реально это всего 5 метров.
2. В реале получается не совсем то что на графике, строго говоря — погрешность около 2-3 метров, но если честно сказать — получилось подозрительно с точностью до наоборот, тоесть перепутаны высоты торцов и экстремум профиля ВПП смещён к противоположному торцу. Хотя на графике отображено правильно)
3. 10 ку не юзаю по причине отсутствия у меня глобального ландшафта, глюков в графике и отсутствия полноценных инструментов под неё)
4. Координаты торцов вводил с максимальной точностью для 15 зума в Гугл. График рунвейпрофиля несовсем реалистичный — пытался немного компенсировать неточность получившегося меша.

Из за того, что в меше мало точек, может получиться и с точностью наоборот. По поводу полосы, меня смущает направление получившееся в программе 42 градуса, хотя по схеме стоит 03, что значит должно быть от 30 до 39 градусов. Или там учитывается магнитное склонение?
Даже в графическом окне видно, что профиль полосы повёрнут по часовой стрелке относительно прямоугольника, обозначенного у вас в гугле.
Вот и хочется понять — есть ли ошибка в моих расчётах.
Если не трудно, пришлите файл с настройками сессии и название порта, я бы тоже хотел попробовать.

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

Результат не идеален, но учитывая затраты (практически «в 2 клика»)) и то что меш с дефицитом вершин, я думаю что приемлем. Никто не будет с доками и линейкой докапываться до меша из за несоответствия в 2 метра)
В доках указан магнитный курс 30 гр., а склонение 12 гр, но я думаю что профи меня если что поправят)

Координаты порта в сессии)
Прикрепленный файл
 session_16_09_31+59+038.zip   8.89К
  29 Количество загрузок:

Результат не идеален, но учитывая затраты (практически «в 2 клика»)) и то что меш с дефицитом вершин, я думаю что приемлем. Никто не будет с доками и линейкой докапываться до меша из за несоответствия в 2 метра)
В доках указан магнитный курс 30 гр., а склонение 12 гр, но я думаю что профи меня если что поправят)

Координаты порта в сессии)
Прикрепленный файл
 session_16_09_31+59+038.zip   8.89К
  29 Количество загрузок:

Да, там действительно 12 град склонение.. значит всё нормально в расчётах.

И вам можно установить параметры NQ, NW около 20 — 30 — немного лучше будет.
Но всё равно, область за пределами профиля ВПП получается непредсказуемой. Мало точек.. Буду думать над этим вопросом.

Бен сообщил, что нашёл баг меша в XP10.. Ждём новую бету.

Добрый день! Можно ли с помощью XMeshCore создать профиль такого вида как на прикрепленной картинке? Серым — ВПП, черным рельеф, коричневый — перепады высот и размеры.

Прикрепленные изображения

  • Профиль рельефа.jpg

Добрый день! Можно ли с помощью XMeshCore создать профиль такого вида как на прикрепленной картинке? Серым — ВПП, черным рельеф, коричневый — перепады высот и размеры.

Можно попробовать, хотя это не совсем правильное применение программы.. но так как программа делает меш тоже не совсем правильно, то никто возражать не будет)))))
За рисунок отдельное спасибо :umnik2:

Четыре угла «простынки» — это точки которые задают границы полигона — первая закладка программы, а профиль ВПП надо задавать перпендикулярно нарисованной серой ВПП — задаем на второй закладке, правильно? Попробовать на практике не могу просто пока…

Не могу никак совладать с программой. Задача просто выровнять весь аэродром, пока без профиля. Для этого делаю ВПП шириной 1800 м., заполняю первые две страницы и жму convert to DSF. Вроде бы что-то делает, но ничего не меняется. Сим — 10тка

Прикрепленные изображения

  • Untitled-1.jpg
  • Untitled-2.jpg

1. Меш лежит в папке Global Scenery как правило.. У вас файл из Custom Scenery, что обычно оверлей из WED..Там нечего редактировать.

2. Перед использованием файл распаковать 7zip.

3. Для выравнивания достаточно 1й вкладки. Просто установить чекбокс Constant Airport Elevation. Остальные две вкладки для создания меша с нуля с помощью MeshTool..

4. Когда всё заполнено нажать Convert to TXT -> EDit -> Convert to DSF..

5. В папке с исхожным DSF будет модифицированный. Его переименовуем правильно и кладём в Custom Scenery в отдельную папку 0UUBB_Terrain например.(не забывать про всю структуру подпапок сценария).

6. Новый сценарий должен быть загружен после оверлейного сценария — в scenery_pack.ini ниже чем 0UUBB.

 

Если вопросы, давайте по порядку — там всё просто, просто нужно один раз сделать.

 

P.S. Нужно положить в папку с программой оригинальный DSFTool отсюда http://dev.x-plane.c…ls_win_12-2.zip

 

.. и тогда не трогать параметры min max Elevation.