Устройство и работа Forest.dat файлов

Материал из Trainsim FAQ
Перейти к: навигация, поиск

Я думал, что я знал все, что я знаю об областях леса (т.н. Forest Regions - прим пер.). Я ошибся, проблемы с ними оказались намного более серъезными чем простое добавление объектов в ref файл. Нужно научиться редактировать их в FORESTS.DAT файле. Напоминаю что они обнаруживаются в меню объекта редактора RE как "объекты пути" (track objects), и нет способов переместить их в другую категорию. Области леса (Forest Regions) не имеют .S, или .SD файлов. Файл Forests.dat используется только Редактором Маршрута - это единственный редактируемый элемент для областей леса. Он так и прописывается в .W файлах.

Это запись в .W файлах перечисляет .ace файлы в использовании. Независимо от того, какова текстура, которую Вы наносите, объект будет простой 2-мерной пересекающейся формы.

Forest10.jpg

Этот способ имеет много очевидных недостатков. Он присваивает значение по умолчанию к электронному распределению программных средств #252, так как любой файл текстуры, который Вы используете, должен быть скопирован во все сезонные подпапки, это нужно для того чтобы избежать сообщения об ошибках при загрузке маршрутов в различных сезонах (forests.dat файл были жестко привязан к использованию сезонных папок). И у этого способа есть еще недостатки при бликом рассмотрении, особенно заметно при некоторых углах, видна пересекающиеся форма объекта (но опять же все зависит от той текстуры которую Вы используете). С расстоянием видимости также иногда возникают проблемы- эти объекты имеют тенденцию внезапно выскочить а не плавно подгружаться по ходу движения.

Большое преимущество этого способа - возможность заполнения больших участков растительностью, так как 3d модель настолько проста, к ней не применяется никакого освещения, комплексного соединения и расчетов конфигурации. И не имеет значения, 1 стоит дерево или куст или 1000, так как они - единая форма и текстурирование аппаратными средствами компьютера выполняется математически очень быстро. Они обрабатываются все как единое целое. Что конечно же положительно сказывается на количестве кадров в секунду.

Так как разобратся с ними? Фактически это просто, для начала откроем Forests.dat в Блокноте либо в любом другом текстовом редакторе (см. скриншот). Видите число 32 обведенное красным цветом?, это - общее количество областей леса доступных в редакторе, и оно должно соответствовать количеству строк которые Вы имеете. Я вставлял до 39 строк, без ошибок и вылетания редактора, и я не знаю, есть ли предел. Каждая строка описывает одну область леса, и имеет в себе шесть полей.

Forest11.jpg

Первое поле, (в кавычках), "tree01", является названием под которым объект будет доступен в Редакторе Маршрутов. Второе поле, "Tree1.ace", является названием файла текстуры в папке \Textures, которая применится к форме.

Далее следуют 4 числа. Первое - габаритная ширина каждого объекта в метрах, второе - высота. Последние два числа представляют собой множители, минимальные и максимальные коэффициенты умножения для объектов. Например, если Вы хотите получить дерево 2 метра высотой и 1 метр шириной, первые числа будут 1.0f 2.0f.

Установив в последние два числа параметр 1.0f 1.0f дадут вем объектам однородный размер, т.е. все деревья будут 2m высоты и 1m ширины. Значения по умолчанию выставляются как (0.9f 1.1f) для разнообразия т.е. размеры будущих деревьев будут колебаться в пределах 10%, если Вы установите значения равные 0.5f 2.0f, которые являются максимальными множителями, тогда самое большое дерево в том регионе будет 4 метра высотой, а наименьшее было бы высотой 1 метр.

Что ж с этим разобрались, теперь давайте поэксперементируем.

Forest12.jpg

Выберем для примера любой файл текстуры

Forest13.jpg

Я взял первый попавшийся файл текстуры и заменил его названием одно из тех, которое уже содержалось в моем файле forest.dat. Единственное на что нужно обратить внимание в этом случае - правильность написания имени файла. Ну вот смотрим что получилось - какое-то нападение гуманоидов. (автор использовал текстуры объектов имитирующих стоящих людей - прим пер.)

Forest14.jpg

Смотрится конечно очень плохо, но тут самое главное эксперементирование. Далее мы видим пример накладки текстур на все 4 стороны 2-х пересекающихся областей, обратите внимание что альфа-канал также применятся к каждой из сторон. Вот например такие чудо - коровы.

Forest15.jpg

Увеличение густоты насаждения Как мы знаем реальные леса могут быть довольно густы. Я пытался эксперементировать насколько далеко я могу наращивать густоту без потерь в FPS (кадр в секунду), ну и конечно чтобы все еще более менее прилично работало. Здесь мы видим 6 наложенных друг на друга областей леса по каждую сторону от рельсового полотна, видим главным образом деревья, но есть и пни также. Я установил каждую область с плотностью 5000 шт/ на кв.км.

Forest16.jpg

При взгляде с задней стороны хвостового вагона, я фиксировал от 26 до 20fps. В кадре с паровозом несколькими автомобилями фиксировал от 22 до 15-17fps. Не слишком плохо для действительно густого леса состоящего из различных деревьев! Перекрытие лесных районов также может быть сделано для имитации смешанных лесов. Однако, накладываясь две или три густых области леса друг на друга можно легко запутаться с их дальнейшим редактированием. Чтобы это исключить расположите маркера (зеленые кубики) в разных уровнях, какие-то ниже, какие-то выше. Вне зависимости от их расположения, деревья остануться на поверхности земли. (см. скриншот)

Forest d.jpg

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

Forest e.jpg

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

Forest f.jpg

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

После расширения изображения так, чтобы оно простиралось на грани файла текстуры, выяснилось что

Forest g.jpg

их можно разместить в более плотном значении (помните, что Вы можете изменить параметры ширины/высоты в файле forests.dat).

Forest h.jpg

К несчастью, есть другие пределы этого способа: падает FPS, а также редактор маршрута начинает выдавать ошибки более часто чем обычно. Измененяемые в процессе значения forest.dat не будут изменять области леса, уже помещенные т.к. информация о уже установленных областях записывается в .w файлы, так что Вы можете экспериментировать, не испортив, то что Вы уже сделали. Вы можете изменить размер лесов вручную в .w файле с помощью быстрого поиска и замены, используя какой-нибудь текстовый редактор. Не забыв перед этим конечно же сделать резервные копии. Также (с резервной копией конечно) Вы можете эксперементировать с этим и выбирать какой вид лучше.

Forest17.jpg

Помещенная область леса имеет 3 небольших зеленых кубика (маркера), средний - показывает фактический выбор объекта, щелчок правой кнопкой мыши открывает Вам окно свойств. Здесь мы видим значения по умолчанию - 50 деревьев на квадратный километр. Небольшие зеленые кубики в гранях красного квадрата - то же маркеры, выделяя один из них и выбирая значок перемещения Вы можете перемещать маркеры для изменения площади посадки деревьев.

Forest18.jpg

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

Forest19.jpg

При выставлении числа деревьев на кв. км ставьте в окошке максимальное значение (если вы конечно хотите получить максимальную густоту). При следующей загрузке редактора значение само выставиться на реальное максимальное значение.

Forest1A.jpg

Climb