Показать сообщение отдельно
Старый 09.06.2012, 18:19   #43
E69
Лентяй и флудер
 
Аватар для E69
 
Регистрация: 10.04.2007
Адрес: Транссиб, 3339 км.
Сообщений: 5,653
Вы сказали Спасибо: 2,059
Поблагодарили 2,355 раз(а) в 781 сообщениях
E69 хороший собеседник
По умолчанию

Про солнце, луну и туманы:
Цитата:
После выхода RW3 стали корректно работать некоторые другие вещи. Всё это не ново, но с движком TSX стало смотреться иначе.
Файлы Time Of Day управляют положением солнца и луны, туманом и их яркостью в каждое из времен года. Всё это влияет на то, как смотрится ваш маршрут – и текстуры земли. Я советую сначала прочитать http://www.railsimdownloads.com/wiki...ight=timeofday , чтобы понимать, о каких параметрах идет речь. Тем же, кто создает реальные маршруты, я также советую понаблюдать за поведением тумана в вашей местности, чтобы затем правильно его настроить.
Первое, что надо сделать – клонировать .bin-файлы TimeOfDay для вашего маршрута. Я копирую их из папки TimeOfDay в Kuju\RailSimulatorCore в свою DMV\CC_Route (и теперь у меня будет собственная папка TimeOfDay). Затем я создаю бэкап файла 'Route blueprint000.bin'. Через RW_Tools я открываю этот файл и ищу секцию "Skies". В нем необходимо заменить все упоминания папок Kuju\RailSimulatorCore на мои DMV\CC_Route. После этого все изменения в файлах будут работать корректно и только на моем маршруте.

Исходный текст:

<skies>
<crouteblueprint-sskies>
<springskyblueprint>
<iblueprintlibrary-cabsoluteblueprintid>
<blueprintsetid>
<iblueprintlibrary-cblueprintsetid>
<provider d:type="cDeltaString">Kuju</provider>
<product d:type="cDeltaString">RailSimulatorCore</product>
</iblueprintlibrary-cblueprintsetid>
</blueprintsetid>
<blueprintid d:type="cDeltaString">TimeOfDay\Core_Spring.xml</blueprintid>
</iblueprintlibrary-cabsoluteblueprintid>
</springskyblueprint>
</crouteblueprint-sskies></skies>

После замены:

<skies>
<crouteblueprint-sskies>
<springskyblueprint>
<iblueprintlibrary-cabsoluteblueprintid>
<blueprintsetid>
<iblueprintlibrary-cblueprintsetid>
<provider d:type="cDeltaString">DMV</provider>
<product d:type="cDeltaString">CC_Route</product>
</iblueprintlibrary-cblueprintsetid>
</blueprintsetid>
<blueprintid d:type="cDeltaString">TimeOfDay\Core_Spring.xml</blueprintid>
</iblueprintlibrary-cabsoluteblueprintid>
</springskyblueprint>
</crouteblueprint-sskies></skies>

Здесь я покажу только редактирование лета в файле 'Core_Summer.bin', но процесс одинаков для всех сезонов. Из множества функций я затрону только положение луны, солнца и тумана. Итак, поехали!
Первое изменение – путь Солнца, что делает тени более реалистичными. Мы должны задать время восхода и захода. Эту информацию можно найти поисковиком, мне попался этот удобный сайт:
http://www.timeanddate.com/worldcloc...&afl=-11&day=1

Я выбрал 1 июля как один из самых длинных дней и середину лета.

<infosun>
<sskybodyinfo>
<risetime>
<stimeofday>
<_iHour d:type="sInt32">5
<_iMinute d:type="sInt32">51
<_iSeconds d:type="sInt32">0
</stimeofday>
</risetime>
<settime>
<stimeofday>
<_iHour d:type="sInt32">20
<_iMinute d:type="sInt32">36
<_iSeconds d:type="sInt32">0
</stimeofday>
</settime>
<azimuthangle d:alt_encoding="000000403333E3BF" d:precision="string" d:type="sFloat32">-0.57</azimuthangle>
</sskybodyinfo>
</infosun>

Затем повторил то же самое для восхода и захода Луны:

<infomoon>
<sskybodyinfo>
<risetime>
<stimeofday>
<_iHour d:type="sInt32">6
<_iMinute d:type="sInt32">13
<_iSeconds d:type="sInt32">0
</stimeofday>
</risetime>
<settime>
<stimeofday>
<_iHour d:type="sInt32">20
<_iMinute d:type="sInt32">58
<_iSeconds d:type="sInt32">0
</stimeofday>
</settime>
<azimuthangle d:alt_encoding="000000000000E0BF" d:precision="string" d:type="sFloat32">-0.5</azimuthangle>
</sskybodyinfo>
</infomoon>

Любопытно, что восход Луны происходит днем даже летом, и её бывает можно найти на небе.
Тут важен один параметр, это AzimuthAngle (азимут точки восхода/захода). На самом деле он не должен быть отрицательным в северном полушарии, это какая-то недоработка.
Чтобы его задать, зайдите на сайт http://www.solarplots.info/Default.aspx и введите координаты вашего маршрута. Вы получите такой график:


RW Dev Wiki утверждает, что значение должно меняться от 0 до 1,5. На графике оно достигает 150.
Значение, которое нам надо вписать в настройки, вычисляется как
(Max Angle Sunrise) - (Sunrise) / 100
Для нашего графика Max Angle Sunrise – наибольший азимут – равен 150, фактический азимут для выбранного дня равен 120, а их разность, деленная на 100, равна -0,3. Это нам и нужно вписать.
К сожалению, RW не воспроизводит точно движение Луны, так что её азимут придется брать наугад.
Спасибо Paragon’у из RWA за помощь в составлении этого выражения.


До редактирования


После редактирования Солнца в полдень

Не стоит путать туман и смог, они легко различимы по цвету (Чак Джонс)
Вряд ли вы действительно хотите видеть смог на маршруте, но при желании вы сможете его сделать по аналогии с туманом. В Horseshoe Curve заметно, что туман поднимается и становятся видны горы. Прежде чем перейти к этому, замечу, что мог ошибаться, утверждая в предыдущей части, что DistantTerrainColour не работает. Туман описывается в нескольких секциях, начинающихся с 'BreakOfDawnTOD'.

Исходные значения:

<fogcolour>
<chccolour>
<red d:alt_encoding="000000203534E43F" d:precision="string" d:type="sFloat32">0.6314</red>
<green d:alt_encoding="000000005655E53F" d:precision="string" d:type="sFloat32">0.6667</green>
<blue d:alt_encoding="000000009695E53F" d:precision="string" d:type="sFloat32">0.6745</blue>
<alpha d:alt_encoding="000000000000F03F" d:precision="string" d:type="sFloat32">1.0000</alpha>
</chccolour>
</fogcolour>
<fogstart d:alt_encoding="0000000000309140" d:precision="string" d:type="sFloat32">1100.0000</fogstart>
<fogend d:alt_encoding="0000000000409F40" d:precision="string" d:type="sFloat32">2000.0000</fogend>

Это определяет, на какой высоте туман должен начинаться (относительно положения камеры), и какова его плотность. Чем больше разница этих значений, тем туман тоньше. Подчеркну, что туман необходимо задавать, потому что он бывает практически везде, и дает нам возможность сделать вид маршрута более контрастным в моменты, когда земля вблизи хорошо видна, а чуть далее – еле заметна. В этом примере я сделаю так, чтобы было видно всё, кроме Mission Peak, который останется едва заметен, и изменю цвет тумана, чтобы он не был таким синим в полдень.
Как видите, смог легко изобразить, меняя цвет, но это затронет весь маршрут, а протяженность CC свыше 180 миль и смог не накрывает его целиком.

Новые настройки для полудня (NoonTOD):

<fogcolour>
<chccolour>
<red d:alt_encoding="000000C06D34E43F" d:precision="string" d:type="sFloat32">0.7922</red>
<green d:alt_encoding="000000409B55E53F" d:precision="string" d:type="sFloat32">0.8118</green>
<blue d:alt_encoding="000000008195E53F" d:precision="string" d:type="sFloat32">0.8157</blue>
<alpha d:alt_encoding="000000000000F03F" d:precision="string" d:type="sFloat32">1.0000</alpha>
</chccolour>
</fogcolour>
<fogstart d:alt_encoding="00000000E0C83041" d:precision="string" d:type="sFloat32">17000.0000</fogstart>
<fogend d:alt_encoding="0000000080843E41" d:precision="string" d:type="sFloat32">25000.0000</fogend>


Без тумана


С туманом

Разобравшись с туманом, я могу изменить DistantTerrainColour из файла Texturing.bin, лежащего в папке DMV\CC_Route\Environment\Terrain\. Заметьте, что туман влияет на цвет поверхности, обычно затемняя её. Поэтому здесь я выбрал более светлый цвет:

<distantterraincolour>
<chccolour>
<red d:alt_encoding="000000203534E43F" d:precision="string" d:type="sFloat32">0.6314</red>
<green d:alt_encoding="00000060B1B1E13F" d:precision="string" d:type="sFloat32">0.5529</green>
<blue d:alt_encoding="00000020DFDEDE3F" d:precision="string" d:type="sFloat32">0.4824</blue>
<alpha d:alt_encoding="0000000000000000" d:precision="string" d:type="sFloat32">0.0000</alpha>
</chccolour>
</distantterraincolour>

Обратите внимание на наличие альфа-канала в цвете. Изменяя его с 0 до 1, я не заметил какой-либо разницы в игре. Однако он используется в Horseshoe Curve и даже может различаться в зависимости от сезона (подобное я пытался изменить, удаляя зиму из маршрута в начале).

Horseshoe Curve:

<winterdistantterraincolour>
<chccolour>
<red d:alt_encoding="000000C07878E83F" d:precision="string" d:type="sFloat32">0.7647</red>
<green d:alt_encoding="000000A01919E93F" d:precision="string" d:type="sFloat32">0.7843</green>
<blue d:alt_encoding="000000E01717E73F" d:precision="string" d:type="sFloat32">0.7216</blue>
<alpha d:alt_encoding="0000000000000000" d:precision="string" d:type="sFloat32">0.0000</alpha>
</chccolour>
</winterdistantterraincolour>

Шутки ради я взял дефолтный DistantTerrainColour для зимы, чтобы посмотреть, как это работает. Введя тестовые значения, я также проверил, как оно работает осенью и весной.

<winterdistantterraincolour>
<chccolour>
<red d:alt_encoding="000000203534E43F" d:precision="string" d:type="sFloat32">0.6314</red>
<green d:alt_encoding="00000060B1B1E13F" d:precision="string" d:type="sFloat32">0.5529</green>
<blue d:alt_encoding="00000020DFDEDE3F" d:precision="string" d:type="sFloat32">0.4824</blue>
<alpha d:alt_encoding="0000000000000000" d:precision="string" d:type="sFloat32">0.0000</alpha>
</chccolour>
</winterdistantterraincolour>
<autumndistantterraincolour>
<chccolour>
<red d:alt_encoding="000000203534E43F" d:precision="string" d:type="sFloat32">0.5</red>
<green d:alt_encoding="00000060B1B1E13F" d:precision="string" d:type="sFloat32">0.5529</green>
<blue d:alt_encoding="00000020DFDEDE3F" d:precision="string" d:type="sFloat32">0.4824</blue>
<alpha d:alt_encoding="0000000000000000" d:precision="string" d:type="sFloat32">0.0000</alpha>
</chccolour>
</autumndistantterraincolour>
<springdistantterraincolour>
<chccolour>
<red d:alt_encoding="000000203534E43F" d:precision="string" d:type="sFloat32">0.7</red>
<green d:alt_encoding="00000060B1B1E13F" d:precision="string" d:type="sFloat32">0.5529</green>
<blue d:alt_encoding="00000020DFDEDE3F" d:precision="string" d:type="sFloat32">0.4824</blue>
<alpha d:alt_encoding="0000000000000000" d:precision="string" d:type="sFloat32">0.0000</alpha>
</chccolour>
</springdistantterraincolour>

И вот результат:

Исходная зима


Новая зима


Новая осень


Новая весна

Всё же тут необходимо небольшое предупреждение. DistantTerrainColor зависит от положения камеры. Так что если вы смотрите вниз с вершины горы… да, кажется, я живу в пустыне :-)

__________________
🚆🚆🚆
E69 вне форума   Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо E69 за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА