Build 743 (xrLC)

xrLC.exe

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

## Описание

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

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

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

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

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

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

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

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

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

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

1. Создать виртуальный диск *X:\*, ссылаемый на папку с компилятором. Для этого нужно создать и запустить в папке с компилятором bat-файл с содержимым:

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

```

1. В командной строке ввести `x:\xrLC.exe` или запустить *xrLC.exe* любым другим способом.
2. Компиляция уровня вызывается через 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 (файл упоминается в двоичном коде приложения)