Build 743

Материал из Zone Chronicles
Перейти к: навигация, поиск
X-Ray SDK: Level Compiler
Диалоговое окно компилятора
Диалоговое окно компилятора
Номер сборки743
Дата компиляции13/20 апреля 2001
В составе xrLC.exe
xrOcclusion.dll
xrProgressive.dll
xrSTRIPS.dll
Работоспособностьзапускается / работает (условно)
Защита

"LevelBuilder v3.0" beta build — самый старый известный компилятор геометрии, являющийся отдельным приложением. Присутствует в полном составе со всеми вспомогательными библиотеками в папке со сборкой 749.

Описание[править | править код]

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

История сборки[править | править код]

Требовалось больше памяти (адресного пространства), а для 32-битного приложения этот ресурс сильно ограничен.


Олесь Шишковцов

После 25 декабря, когда был собран xrLevelBuilder в качестве динамической библиотеки для редактора, появился вопрос об отделении компиляции геометрии, её оптимизации и просчёта освещения от редактора и создании для этих целей отдельного приложения. Причиной являлось адресное пространство редактора, которое можно было освободить от компиляции. Достаточно быстро проект приложения (.dsp) был изменён на компиляцию .exe приложения и переименован в xrLC.

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

Технические особенности[править | править код]

Компилятор ссылается на библиотеки xrOcclusion.dll и xrProgressive.dll, как и xrLevelBuilder, но по сравнению с ним также читает библиотеку xrSTRIPS.dll, отвечающую за стрипификацию полигонов. В функционале самого приложения появилась реализация просчёта секторов и порталов[прим. 2][источник 1], добавлен просчёт вершинного освещения[прим. 3] и один из алгоритмов глобального освещения — Radiosity[прим. 4][прим. 5].

При этом были убраны фазы Building Hierrarhy, Building PVS и Building RelevantSet из-за дальнейшей нецелесообразности их использования на фоне внедрения системы секторов и порталов, при которых построение уровня теперь шло иначе.

Скачивание и запуск[править | править код]

Полноценный запуск компилятора невозможен, так как отсутствует подходящая версия редактора — компилятор нельзя задействовать из-за отсутствия нужных ресурсов. Для простого запуска нужно:

  1. Создать виртуальный диск X:\, ссылаемый на папку с компилятором. Для этого нужно создать и запустить в папке с компилятором bat-файл с содержимым (точка в конце необходима):@%systemroot%\system32\subst.exe x: .
  2. В командной строке ввести x:\xrLC.exe или запустить xrLC.exe любым другим способом.
  3. Компиляция уровня вызывается через bat-файл или командную строку, в которые нужно вписать текст x:\xrLC.exe %1, где %1 — имя собранной сцены.

Интересные факты[править | править код]

  • PE-секции файла xrLC.exe имеют дату изменения 20 апреля 2001 года, дата изменения приложения — 3 октября 2003, а в log-файле указано 13 апреля 2001
  • У компилятора отсутствуют какие-либо ключи запуска

Примечания[править | править код]

  1. ^ В более широком смысле самым старым компилятором является xrLevelBuilder.dll, исполненный в виде динамически подключаемой библиотеки для редактора уровней того времени.
  2. ^ Компилятор содержит в себе фазы Building volume-pick database..., Building sectors... и Saving sectors...
  3. ^ Компилятор содержит в себе фазу Calculating vertex lighting....
  4. ^ Работает по принципу того, что освещение, поступающее на поверхность, исходит не только непосредственно от источников света, но и от других поверхностей, отражающих свет. Компилятор принимает булевое выражение, отражающее истину/ложь в использовании этого метода. Если выражение ложно, то для просчёта освещения используется обычный Direct Lighting.
  5. ^ Компилятор содержит в себе фазу Raytracing lightmaps и выводимую строку %d vertex raytraced
Источник
  1. ^ C:\Projects\xrLC\Sector.cpp (файл упоминается в двоичном коде приложения)