Build 1119 (xrDO)

Компилятор освещения детальных объектов, присутствует в полном составе в составе SDK 1097, под именем *xrDO\_Light.exe*.

## Описание

Является одной из первых версий компилятора детальных объектов, самая старая версия, которая известна сообществу. Задачами компилятора является просчет освещения детальных объектов, посредством проецирования излучаемого от хемисферы света на их геометрию, которая хранится в детейл-слотах (*англ.* Detail slots).

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

> Расставлять брашем не очень удобно из-за того что нужно менять сам террейн, проще пресетами перегенерять.
> Плюс генеренное легче балансировать по кол-ву, меньше памяти на уровень необходимо что-то типа пару бит на квад.
>
>
> Александр Максимчук
>
>

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

В середине января 2002 года, система кластеров была полностью переоформлена в систему детейл-слотов, где размещение детальных объектов происходит через генерацию по специальной карте-текстуры, где определенная модель травы привязывается к конкретному цвету, нарисованному на текстуре карты и квадами покрывает весь террейн. С того момента сама система расстановки детальных объектов в общем не менялась, а компилятор дорабатывался. Данная версия является фактически самой первой из компиляторов *xrDO\_Light*.

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

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

Компилятор не использует для запуска какие-либо библиотеки, которые являются частью движка X-Ray. Для его работы нужен build.prj, build.cform и level.details собранной сцены, для начала просчета освещения.

Основные функции компилятора:

* Были добавлены ключи запуска компилятора: *-f*, *-h*/*-?*, *-o*;
* Для просчета освещенности детальных объектов используется хемисфера низкого качества из 26-ти вершин;

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

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

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

```

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

```
x:\xrLC.exe -f %1

```

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

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

* Первый известный отдельный компилятор детальных объектов.
* Несмотря на то, что система детальных объектов претерпела такие колоссальные изменения, в составе кода ближайшего компилятор геометрии осталась фаза Detail Patch, обрабатывающая старый формат детальных объектов, которые все-еще можно расставить в SDK ;

## Примечания

1. ^ Любая геометрия, хранящаяся в level.details, в основном это трава
2. ^ Основываясь на датах первых текстур детальных объектах
3. ^ Сбор данных о источниках света
4. ^ Получение коллизии сцены
5. ^ Получение детейл-слотов, которые будут обрабатываться компилятором
6. ^ **-f <ИМЯ>** — главный ключ запуска, отвечающий за компиляцию уровня
**-h** (или **-?**) — ключ для вывода окна о существующих ключах запуска. Если запускать компилятор как обычное приложение, то это окно будет инициализироваться при запуске
**-o** — возможность изменить настройки компилируемого уровня, вызывающий окно настройки сцены редактора, которое содержится в библиотеке *xrLC\_Options.dll*
7. ^ Однако реальная нужда в *xrLC\_Options.dll* отсутствует по той причине, что его настройки предназначены только под xrLC, и при попытке вызова опций настройки здесь, xrDO не будет инициализировать окно
8. ^ 26 лучей
9. ^ Компилятор содержит в себе фазу `Processing DetailPatches...`

Источник
1. ^
dtpatch\_stone1.tga (03.01.2001)
dtpatch\_stone2.tga **(29.12.2000)**
dtpatch\_stone5.tga (03.01.2001)
dp\_1 (03.01.2001)
dp\_2 (03.01.2001)
dp\_3 (09.01.2001)
dp\_4 (03.01.2001)
2. ^ C:\Projects\xrLC\xrDO\_Light\compiler.cpp (файл упоминается в двоичном коде приложения)
3. ^ C:\Projects\xrLC\xrDO\_Light\xrDO\_Light.cpp (файл упоминается в двоичном коде приложения)