S.T.A.L.K.E.R. Wiki

We've Moved! Just as Gamepedia has joined forces with Fandom, this wiki had joined forces with our Fandom equivalent. The wiki has been archived and we ask that readers and editors move to the now combined wiki on Fandom. Click to go to the new wiki.

ПОДРОБНЕЕ

S.T.A.L.K.E.R. Wiki
Advertisement
X-Ray SDK: Level Compiler
Успешное завершение компиляции на ОС Windows 10
Успешное завершение компиляции на ОС Windows 10
Номер сборки1126
Дата компиляции31 января 2002
В составе xrLC_save.exe
DXT.dll
xrDXTC.dll
xrLC_Options.dll
xrProgressive.dll
Работоспособностьзапускается / работает
Защита

Компилятор геометрии, присутствует в полном составе в составе SDK 1097, под именем xrLC_Save.exe.

Описание

Принцип работы и предназначение данного компилятора, по сравнению с предшествующими версиями не изменилось и в будущем оно также будет сохранять наследственность. Имея больше полугодичный временной промежуток между прошлой известной версией и данной, в составе текущей сборки содержится достаточно большой ряд нововведений и исправлений. Этой версией был скомпилирован уровень Lev5 aztec из сборки 1098, вместе со смежными версиями.

История сборки

Являясь автором программы и в большей роли, её развитием занимался Олесь Шишковцов. После окончания работ и компиляции уровня Demo, встал вопрос об оптимизации и рационализации создания лайтмапов, потому что на относительно больших локациях с открытым ландшафтом их количество могло доходить до сотен карт, которые также занимали собой видеопамять при загрузке, как и обычные текстуры. При этом качество глобального освещения оставляло желать лучшего и требовались идеи по визуальному улучшению. Помимо этого, появлялись идеи по ускорению процесса просчета освещения, улучшения стабильности работы прогрессивных мешей для статической геометрии[прим. 1].

Несмотря на остро стоящие для открытых пространств проблемы, было решено в первую очередь уделить внимание ИИ, тесты которого проводились в сентябре 2001 года. Полномасштабная работа над компилятором началась только в конце 2001 года, когда было начато создание уровня lev5_aztec. Был добавлен Implicid Lighting, проецирующий на ландшафт уровня глобальное затенение от хемисферы, который отбросил требование также считать для него лайтмапы в несколько десятков-сотен карт. Глобавльное затенение также оказывало эффект и на всю остальную геометрию, что позволяло создавать полноценный эффект рассеиваемого света в помещениях. Для повышения скорости просчета фаз, связанных с освещением, было сделано разбиение их на несколько потоков (англ. Threads), состоящих из шести или восьми штук, которые одновременно занимались выполнением просчетов внутри этих фаз.

Позже она была выложена пользователем Loxotron на GAMEINATOR forums в сливе сборок от 9 февраля 2011 года.

Технические особенности

XrLC lightmaps fuzzy

Сравнение двух карт лайтмап, с выключенным и включенным fuzzy

В отличие от прошлых версий, компилятор ссылается на библиотеки DXT.dll, для работы с форматом .dds и xrLC_Options.dll[прим. 2], для возможности взаимодействовать с настройками сцены перед компиляцией. Из ранее имевшихся библиотек, используемыми остались xrDXTC.dll, по-факту больше неиспользуемая и xrProgressive.dll, которая все также отвечает за создание прогрессивной геометрии. Однако, в каталоге SDK, вместе с компиляторами находятся и старые библиотеки, используемые прошлыми версиями компилятора. Среди них находится xrSpherical.dll, которая отсутствовала в прошлой известной версии, но была используема компилятором примерно с июля 2001 года до неизвестного срока.

Работа некоторых фаз компиляций была изменена, был добавлен новый функционал, вместе с новыми фазами, в первую очередь направленный на оптимизацию и ускорение процесса компиляции:

  • Были добавлены ключи запуска компилятора: -f, -h/-?, -o[прим. 3][источник 1];
  • Фазы Implicit lighting..., Raytracing lightmaps... и Calculating vertex lighting... используют многопоточное выполнение своих расчетов[источник 2];
  • Добавлены фазы Implicit Lighting[источник 3][источник 4] и Soften Lights[прим. 4][прим. 5], отвечающие за построение и запекание света от хемисферы, который используется для эмуляции рассеянного света;
  • При просчете лайтмап стал применяться Root Mean Square (RMS), предназначенный для разброса плотности пикселей на дефлекторы;
  • При создании текстур-лайтмап, создаются их _base копии, где в альфа-канале хранится развертка дефлекторов без паддинга, для отлаживания процесса распределения их по холсту. Для запеченного глобального затеннения от хемисферы на проекции террейна создается markup-копия;
  • Дефлекторы больше не разбиваются по градусу угла разреза, а привязаны к параметру, отвечающим за угол автоматического сглаживания нормали моделей в сцене;
  • Более продуманная работа распределения геометрии в пространстве, с использованием дополнительных настроек, получаемых от настроек сцены;
  • Стрипификация применяется также выборочно, как и создание прогрессивной геометрии;
  • Компилятор начал читать .thm файлы текстур, которые используются в собранной сцене. Это связано с появлением в редакторе редактора текстур, где настройки той или иной текстуры записывались в её .thm;
  • Появление параметра XRCL_PRODUCTION_VERSION, со значение 5. А XRCL_CURRENT_VERSION в данной версии имеет значение 10;

Скачивание и запуск

Компилятор можно запустить при наличии виртуального диска X, ссылаемого на директорию с компилятором. Для этого нужно создать .bat файл с следующим содержимым:

@%systemroot%\system32\subst.exe x: .

Сама компиляция уровня вызывается через bat-файл или командную строку, в которых нужно прописать:

x:\xrLC.exe -f %1 

Где -f — ключ, осуществляющий компиляцию, а %1 — имя собранной в редакторе сцены. Для изменения параметров сцены следует ввести -o, после имени сцены.

Интересные факты

  • Первый известный компилятор, где появились ключи запуска.
  • Несмотря на то, что система детальных объектов в редакторе претерпела колоссальные изменения, и алгоритм по её освещению в сцене был перенесен в отдельное приложение, в составе кода все-еще находятся рабочие фазы по обработке Detail Patch[прим. 6], которые все-еще можно расставить в SDK ;
  • Единственный известный компилятор, чья форма окна оформлена в книжной ориентации.

Галерея

Примечания

  1. ^ В прошлой известной версии компилятора стабильность работы создания прогрессивов оставляла желать лучшего и могла легко послужить причиной падения программы
  2. ^ Запуск компилятора возможен и без неё, она нужна только для визуализации окна изменения настроек компилируемой сцены
  3. ^ -f <ИМЯ> — главный ключ запуска, отвечающий за компиляцию уровня
    -h (или -?) — ключ для вывода окна о существующих ключах запуска. Если запускать компилятор как обычное приложение, то это окно будет инициализироваться при запуске
    -o — возможность изменить настройки компилируемого уровня, вызывающий окно настройки сцены редактора, которое содержится в библиотеке xrLC_Options.dll
  4. ^ Эффект смягчения и рассеивания источников света, в будущем это станет параметром fuzzy у источников статического света в Level Editor
  5. ^ Компилятор содержит в себе фазу Soften lights...
  6. ^ Компилятор содержит в себе фазу Processing DetailPatches... и выводимую строку %d detail patches processed.
Источник
  1. ^ P:\xrLC\xrLC.cpp (файл упоминается в двоичном коде приложения)
  2. ^ P:\xrLC\xrThread.cpp (файл упоминается в двоичном коде приложения)
  3. ^ P:\xrLC\Build.cpp (файл упоминается в двоичном коде приложения)
  4. ^ P:\xrLC\xrLight_Implicit.cpp (файл упоминается в двоичном коде приложения)
Advertisement