Решил написать подробный урок по созданию реального рельефа в Trainz. Существующий урок от Грегори мне показался неполным. Хотя из него я кое что взял, для составления данной инструкции. Да и в последнее время ко мне начали очень часто обращаться с вопросом создания той или иной карты. При прочтении существующего урока, постоянно возникали вопросы.
Вобщем думаю это окажется кому то полезным.
Картинки кликабельны.
Для выполнения всех операций нам понадобится несколько программ.
1. Sas.Planet
2. MicroDem
3. HOG
4. Графический редактор. Я использовал Photoshop
1. Получение спутникового снимка поверхности.
а) Запускаем программу Sas.Planet. Находим нужную нам местность, для удобства ориентирования можно воспользоваться не спутниковым снимком гугла, а к примеру его картой.
Главное потом не забыть вернуться опять на вариант с изображением со спутника.
б) Нажимаем "Операции"-"Выделить"
Далее у нас есть варианты:
Выбрать «Прямоугольная область» и просто мышкой выделить необходимый нам квадрат.
Или воспользоваться меню «По координатам»
Эти координаты можно узнать в самой Sas.Planet посмотрев на серую строчку внизу окна программы. Соответственно нам нужны координаты верхнего левого угла нашего квадрата и координаты нижнего правого. О чем собственно нам программа и сообщает. Перемещаем мышь в нужные нам точки и смотрим координаты.
в) Независимо от способа (по координатам, или мышкой) мы приходим к такому окну:
В нём нам важно выбрать, чьи изображения мы будем скачивать. В моём случае это спутник гугл. И масштаб. Чем больше масштаб, тем более качественнее получится загружаемая картинка. Но главное не переусердствовать. Разрешение картинки имеет пределы. На windows7 x86 мне не удалось открыть картинку с разрешением одной стороны более 30000 пикселей. Кстати если выбрать картинку, например, со стороной 29000 пикселей, в дальнейшем при создании рельефа в следующей программе вы всё равно получите критическую ошибку. Так как файл в ней будет увеличиваться. Путём проб и ошибок я выяснил, что самое максимальное разрешение для выгружаемой картинки может быть не более 10-15 тысяч пикселей на одну сторону. В данном случае не стоит гнаться за качеством. Вся картинка нам нужна только для того, что бы на ней просто разглядеть путь нашей железной дороги. В Trainz текстуры всё равно с такой точностью не появятся на земле.
И так. После манипуляций с масштабом, и выбором размера картинки, нажимаем кнопку «Начать». Sas.planet начинает загружать снимки. Процесс не быстрый.
Закончили.
г) Теперь скаченные снимки нам необходимо «склеить» в одну большую картинку:
Нажимаем «Операции-Выделить-Предыдущее выделение»
И переходим на вкладку «Склеить». Выбираем место и имя для сохранения. Выставляем тот масштаб, с которым мы скачивали снимки, в моём случае это был х15. И обязательно в окне «Создать файл привязки» ставим галочку на map. И нажимаем «Начать»
Почти выполнилось.
Конкретно в моём случае получилось вот что
При увеличении можно вполне разглядеть, как идёт дорога.
2. Получение файла привязки.
Sas.planet умеет создавать только файл привязки *.map, а нам нужен *.jpw, но ничего страшного, на основе файла map мы сможем сделать нужный нам файл *.jpw. http://rghost.ru/37204849 — простейшая программа, конвертирующая все *.map в *.jpw.
То же самое можно сделать руками:
http://pastebin.com/0dLCs3sy
3. Получение карты рельефа ч.1
Теперь нам нужно получить данные рельефа. И тут нам понадобится программа MicroDem. Программа глючная, но выбора у нас нет.
Заходим на сайт http://dds.cr.usgs.gov/srtm/version1/Eurasia/ и скачиваем необходимые нам файлы. Какие файлы нам необходимы очень просто понять из всё того же файла map. Открываем его, и опять смотрим в самый низ. Видим такие строчки:
MMPLL,1, 38.2805728912354, 55.5474263683199
MMPLL,2, 39.7272491455078, 55.5474263683199
MMPLL,3, 39.7272491455078, 54.5908146775728
Из них нам становится ясно, что наша область умещается по долготе в 38 и 39 градусы, а по широте в 54 и 55 градусы. Следовательно, так как мы делаем карту северного полушария, нам нужны файлы:
N54E038.hgt.zip
N54E039.hgt.zip
N55E038.hgt.zip
N55E039.hgt.zip
Скачиваем их, и вытаскиваем нужные нам файлы *.hgt из архивов и кладём в одну папку. Если ваша карта вписывается в только в один градус по широте и долготе, соотвественно скачаваете только один файл, и пропускаете следующий шаг.
а) Объединение файлов рельефа.
Нам нужно объединить файлы данных рельефа, в один файл:
Нажимаем соответствующую кнопку.
Выбираем наши файлы hgt.
После нажатия кнопки «Открыть» программа проведёт операцию объединения файлов, и предложит сохранить получившийся новый файл данных высот.
Сохраняем.
б) Сопоставление спутникового снимка и карты рельефа.
Открываем сделанный нами ранее файл *.jpw. Напомню, что он должен иметь такое же имя, как и спутниковый снимок.
Если снимок большой, то ждём...
Далее File – Open –Dem
И выбираем объединённый файл данных высот *.dem или просто файл *.hgt
Получаем такую вот картину:
Теперь нам нужно совместить спутниковый снимок и высоты. Для этого выделяем окно с данными высот (что бы оно было на переднем плане) и выбираем пункт File -> Match other maps -> This coverage area
Спутниковый снимок уменьшается в размерах.
Теперь выделяем этот спутниковый снимок (Так же что бы он встал на передний план) и проводим ту же операцию: File -> Match other maps -> This coverage area
Всё. Высоты и спутниковое изображение совмещены.
Проверить это можно, если поводить мышкой по одному снимку, на втором курсор повторит ваши движения.
а) Конвертация изображения с данными высот.
Выделяем окно с рельефом, и идём в меню Modify -> Elevation
В открывшемся меню ставим точку на «Chroma Depth Color» и нажимаем кнопку "z Range".
В следующем окне ставим точку на строчку «Map area range» И запоминаем числа Max и Min. Они нам понадобятся позже. Затем два раза нажимаем «ОК»
Наш рельеф изменит цвет:
Щёлкаем правой кнопкой мыши на карте и в выпадающем меню выбираем Modify map area -> Set map pixel size и в появившемся окошке выставляем значение 10 (метров/пиксел).
Эту же операцию проводим и со спутниковым снимком.
Всё. Далее File -> Save image. И сохраняем наши изображения (снимок, и рельеф)
4. Генерация рельефа для Trainz.
a) Открываем наш спутниковый снимок сохранённый из программы MicroDem с помощью, например программы Photoshop, выставляем цвет 0,255,255 (HEX#00FFFF) и инструментом Line Tool обводим контур будущей трассы. У меня получилось так.
Толщина линии может быть 1-5 px. Особой точности не требуется, главное что бы контур был довольно таки похож на реальность. Сохраняем файл. В итоге у нас получается создано 3 файла. Спутниковый снимок, контур трассы, и файл высот. Они нам и понадобятся для создания карты в Trainz.
б) Подготовка данных.
Все три картинки (карту рельефа, спутниковую фотографию и контур трассы) сохраняем по отдельности в формате 24-bit Uncompressed TGA. Например это будут height_01.TGA - карта рельефа, map_01.TGA - спутниковый снимок и track_01.TGA - спутниковый снимок, совмещённый с контуром трассы. Файлы следует поместить в рабочую директорию программы HOG.
Обрезаем все три картинки до размеров (72Х+4)х(72Y+4), где Х и Y – размеры нашей трассы в бейсбордах (размер одного бейсборда – 720х720м, следовательно 1 бейсборд – это квадрат 72х72 пикс. на карте). Вычислить их можно, выделив участок изображения так, чтобы в него попала вся трасса и посмотрев сколько пикселей выделено по горизонтали и вертикали, а затем поделив эти значения на 72, отбросив дробную часть. Например: 2980 / 72 = 41 -> 41 * 72 + 4 = 2956. Важно что бы все три картинки имели одинаковый размер.
Все три картинки (карту рельефа, спутниковую фотографию и контур трассы) сохраняем по отдельности в формате 24-bit Uncompressed TGA. Например это будут height_01.TGA - карта рельефа, map_01.TGA - спутниковый снимок и track_01.TGA - спутниковый снимок, совмещённый с контуром трассы. Файлы следует поместить в рабочую директорию программы HOG.
______________________________________________
Пояснение ZVERSKY: На самом деле этот "икс", находящийся между скобками, это не "икс" и не знак умножения, из-за этого у меня возникла путаница. А посчитать размеры картинок просто, например: пусть наша спутниковая фотография, созданная через микродем, будет размером 1296х2048 пикселей, согласно формуле нам нужно найти Х(икс) и Y(игрик).
Находим Х:
1296/72=18
Х=18 (если число получилось не целое, то округляем до целого)
Находим Y:
2048/72=28
Y=28
Теперь подставляем, найденные Х и Y, в формулу: (72*18+4)=1300; (72*28+4)=2020.
Наша картинка имеет размер: 1300х2020, после этого делаем оставшиеся две картинки такого же размера.
______________________________________________
в) Генерация рельефа.
Запускаем HOG и нажимая кнопки "Pick..." напротив соответствующих полей расставляем наши файлы следующим образом: Графа Elevation Data
В поле Height map помещаем карту высот (файл height_01.TGA). В поле Data format выбираем Chroma depth color и Gray scale. В поле Base height и Max. height - величины, которые мы видели в окошке "Elevation Range For Coloring" микродема.
Графа Additional data
- В поле Optional alternate image for layout minimap помещаем карту контура трассы (файл track_01.TGA).
- В поле Optional image to serve as layout texturing guide помещаем спутниковую фотографию (файл map_01.TGA). Галку Randomize size and rotation of textures следует снять. Вообще говоря здесь возможны варианты: в качестве текстурного шаблона можно использовать спутниковый снимок (как в данном случае), а можно создать в графическом редакторе отдельный текстурный шаблон, а затем закрасить им тайлы. Кому как нравится. Однако следует иметь в виду, что Optional alternate image for layout minimap имеет свойство исчезать при малейшем изменении рельефа бейсборда в Surveyor. Так что texturing guide в виде спутникового снимка может оказаться полезен.
- В поле Optional image to serve as guide for layout filtering Помещаем контур трассы (файл track_01.TGA). Движок Filter radius определяет, сколько бейсбордов вокруг трека будут отфильтрованы. Если поставить его в минимальное положение, то сгенерированный .gnd-файл будет иметь минимальный размер, но есть риск получить "край мира" слишком близко от полотна ЖД, то есть вся ответственность за результат возлагается на трассостроителя, который на шаге 3.2 данного урока должен точно очертить участки карты, которые войдут в будущий "мир". Графа Output
В поле All supplied data combined in Trainz .gnd layout file прописываем имя будущего файла (mapfile.gnd) и жмём Большую Кнопку Generate .gnd file. Создание маршрута
Запускаем Trainz. Запускаем Surveyor и создаём новый проект. Сохраняем его и сессию и выходим. Запускаем Content Manager и открываем только что созданный проект на редактирование, и заменяем файл mapfile.gnd на тот, что был создан на предыдущем шаге, коммитим (Ctrl+M) изменения и возвращаемся в Surveyor. На этом процесс создания ландшафта можно считать в первом приближении завершенным.
!!! Работоспособность описанных программ была проверена мной только на системе Windows 7 ultimate x86 rus, и совершенно чистой Windows XP sp3 x86 rus. Но даже на этих системах работоспособность описанных программ я гарантировать не могу. Просьба не обращаться в ЛС о неработе какого то программного обеспечения. Единственный совет: В случае неработоспособности данных версий искать другие в интернете.
Последний раз редактировалось WearsPrada; 28.01.2011 в 17:08.
Увы, во втором приближении приходится 99% стирать и делать руками. Делал таким методом Минскую ДЖД, получилось голое поле с парой двухметровых холмиков, хотя перепады высот там должны быть немаленькие. В результате работаю по бейсбордам, фото, видео и карте профиля трассы. Видно, карты высот для городской черты содержат хреновые данные.
Это наша-то колея узкая? Да это просто ваша слишком широкая!
Skif, ну я для маршрута своего так делал. Скрины собственно говоря свежие. Пару дней назад только занимался.
А для первой части маршрута своего делал давненько. Данные оказались довольно таки точными, и рельеф получился очень очень похожим на реальность. Вот на днях делал вторую часть, так на рельефе даже горы искусственно созданные людьми отпечатались. Мне кажется в твоём случае либо ты сделал что то не верно, либо данные высот были очень неточные. ПО этому методу я сделал уже не один участок. Всё в норме...
GiG, вот к слову эта карта сделана из 4х кусков рельефа. Ещё 1 будет присоединён позже.
В местах соединения разность по высотам составляет метров 5 максимум. Всё это удалось соединить благодаря тому, что всё сделано было по одной технологии описанной мною выше. Главное, если делать несколько кусков, делать их хоть и с запасом, но с небольшим, что бы в треинзе не было много лишних тайлов для удаления. Потому что потом лишние тайлы удалять это целая история, приходится долго вглядываться в мутные текстуры в треинзе и искать что то похожее на 2х картах. Поэтому я себе сделал рельеф с голубой линией сразу, что бы было удобнее совмещать. И основной минус от соединения: Погрешность метров в 400-600 может все жё быть. Например на одной карте путь подходит к краю в середине тайла, а на другой карте тоже самое место не в середине тайла, а у него с краю. Но для меня это не является проблемой. Я хоть и гонюсь за реальностью, но пол километра перехода можно и придумать. На этой карте погрешность составила в одном месте 150 метров, в других и того меньше.
Урок устаревший, Сейчас вовсю пользуются SRTM v.4 и GDEM да и программой TransDem, выходит гораздо легче и качественнее, ведь GDEM 30m/pix разрешение (Правда с ошибками) А SRTM V.4 - 60 м/пикс правда без ошибок в спутниковых данных. Самое важное не делать весь мир со всеми ЖД в программе. Отрезок в 70 км со всеми ЖД и бэйсмапами уже кушает 4 ГБ оперативки, по опыту знаю. При большом объёме данных всё разбивается на малые отрезки и склеивается уже в игре.
shney, вот правильная ссылка на самый последний SRTM. А вот здесь более точные данные GDEM (нужна бесплатная регистрация). Вот здесь можно купить TransDem. Вы можете заменить ссылки в Вашем уроке. А так я на trainz.ru форуме писал урок когда то.