Редактирование: xrLC

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
 
xrLC — компилятор геометрии и освещения игрового уровня. Запускается из консоли.
 
xrLC — компилятор геометрии и освещения игрового уровня. Запускается из консоли.
 
  
 
== Параметры командной строки ==
 
== Параметры командной строки ==
Строка 6: Строка 5:
 
<syntaxhighlight lang="winbatch">xrLC <общие_опции> -f <имя_уровня> <дополнительные_опции></syntaxhighlight>
 
<syntaxhighlight lang="winbatch">xrLC <общие_опции> -f <имя_уровня> <дополнительные_опции></syntaxhighlight>
  
===Обязательный параметр===
+
Обязательный параметр:
 
* '''-f <имя_уровня>''' <br />Компилировать уровень в <code>gamedata\levels\<имя_уровня>\</code>
 
* '''-f <имя_уровня>''' <br />Компилировать уровень в <code>gamedata\levels\<имя_уровня>\</code>
  
===Общие опции===
+
Общие опции:
* '''-gi''' <br />Просчёт глобального освещения по алгоритму Radiosity (недоработан).
+
* '''-gi''' <br />Просчет глобального освещения по алгоритму Radiosity (недоработан).
 
* '''-nosun''' <br />Отключить солнечное освещение. Опция предназначена для компиляции подземных локаций.
 
* '''-nosun''' <br />Отключить солнечное освещение. Опция предназначена для компиляции подземных локаций.
 
* '''-nosmg''' <br />Не использовать группы сглаживания (для компиляторов ЧН и ЗП).
 
* '''-nosmg''' <br />Не использовать группы сглаживания (для компиляторов ЧН и ЗП).
 
* '''-noise''' <br />Не создавать геометрию progressive-типа (с лодами). Без такого ключа вдали от игрока геометрия подменяется на упрощенный вариант, отрисовывается меньше вершин. Теоретически это должно давать некоторый прирост FPS. Используйте, если компилятор валится без внятного лога на обработке progressive mesh'ей.
 
* '''-noise''' <br />Не создавать геометрию progressive-типа (с лодами). Без такого ключа вдали от игрока геометрия подменяется на упрощенный вариант, отрисовывается меньше вершин. Теоретически это должно давать некоторый прирост FPS. Используйте, если компилятор валится без внятного лога на обработке progressive mesh'ей.
  
===Дополнительные опции===
+
Дополнительные опции:
 
* '''-? или -h''' <br />Вывести краткую справку по основным командам.
 
* '''-? или -h''' <br />Вывести краткую справку по основным командам.
 
* '''-o''' <br />Модифицировать опции построения уровня (только в компиляторах ТЧ).
 
* '''-o''' <br />Модифицировать опции построения уровня (только в компиляторах ТЧ).
 
* '''-silent''' <br />Завершать работу без вывода сообщения об успешном окончании компиляции. Используется для пакетного рендеринга уровней. Полезен в любом случае, т.к. позволяет автоматически освободить системные ресурсы.
 
* '''-silent''' <br />Завершать работу без вывода сообщения об успешном окончании компиляции. Используется для пакетного рендеринга уровней. Полезен в любом случае, т.к. позволяет автоматически освободить системные ресурсы.
 
* '''-keep_temp_files''' <br />Сохранять build_cform_source.smf и cform_source.smf в папке с уровнем. Скорее всего, эти файлы просто для визуального анализа коллижн-геометрии в [[QVis]]. На минимальных настройках компиляции ключ не работает.
 
* '''-keep_temp_files''' <br />Сохранять build_cform_source.smf и cform_source.smf в папке с уровнем. Скорее всего, эти файлы просто для визуального анализа коллижн-геометрии в [[QVis]]. На минимальных настройках компиляции ключ не работает.
* '''-net''' <br />Сетевая компиляция. Используются координатор и агенты (только для сетевого компилятора ЗП). См. ниже
+
* '''-net''' <br />Сетевая компиляция. Используются координатор и агенты (только для сетевого компилятора ЗП).
 
Пример:
 
Пример:
 
<syntaxhighlight lang="winbatch">xrLC -nosun -f level_name -net</syntaxhighlight>
 
<syntaxhighlight lang="winbatch">xrLC -nosun -f level_name -net</syntaxhighlight>
 
<!--* '''-att'''<br /> ???-->
 
<!--* '''-att'''<br /> ???-->
  
===Опции улучшенных компиляторов===
+
Опции улучшенных компиляторов:
* '''-show_log'''<br />Автоматически открывать лог-файл при ошибке компиляции.
 
 
* '''-skipinvalid'''<br />Игнорировать invalid faces (некорректные полигоны). При их обнаружении компилятор не будет валиться с ошибкой.
 
* '''-skipinvalid'''<br />Игнорировать invalid faces (некорректные полигоны). При их обнаружении компилятор не будет валиться с ошибкой.
 
* '''-lmap_quality'''<br />Качество лайтмапов, аналогично параметру '''Pixel per meter''' в LE. Если ключ не указан, используется значение из билда локации.
 
* '''-lmap_quality'''<br />Качество лайтмапов, аналогично параметру '''Pixel per meter''' в LE. Если ключ не указан, используется значение из билда локации.
Строка 33: Строка 31:
 
  Описание ключей norgb и nosun справедливо и для [[xrDO_Light]], с той лишь разницей, что xrDO_Light не делает текстуру лайтмапа, а запекает все просчитанные коэффициенты освещения в [[level.details]]
 
  Описание ключей norgb и nosun справедливо и для [[xrDO_Light]], с той лишь разницей, что xrDO_Light не делает текстуру лайтмапа, а запекает все просчитанные коэффициенты освещения в [[level.details]]
 
* '''-lmap_rgba'''<br />Сохраняет лайтмапы без потерь качества.
 
* '''-lmap_rgba'''<br />Сохраняет лайтмапы без потерь качества.
* '''-thread <N>'''<br />Задаёт N потоков при просчёте лайтмапа террейна. Чем больше создаётся потоков — тем больше требуется памяти. Теоретически может дать прирост скорости на машине с огромным объёмом ОЗУ. '''Использовать с осторожностью!'''
+
* '''-thread <N>'''<br />Задаёт N потоков при просчёте лайтмапа террейна. Чем больше создаётся потоков — тем больше требуется памяти. '''Использовать с осторожностью!'''
* '''-use_tbb''' <br />Использовать Intel TBB для распараллеливания стадии просчёта лайтмапа террейна и Build UV mapping. Нагрузка распределяется автоматически, и в большинстве случаев предпочтительнее использовать этот режим, нежели вручную задавать число потоков ключом '''-thread'''
+
* '''-use_tbb''' <br />Использовать Intel TBB для распределения потоков при просчёте лайтмапа террейна. Нагрузка распределяется автоматически, и в большинстве случаев предпочтительнее использовать этот режим, нежели вручную задавать число потоков ключом -thread
*'''-skip_aht_tess'''<br />Отключить Adaptive HT Tesselating (на этой стадии слишком большие или непропорционально длинные полигоны разбиваются на более мелкие). Большие полигоны сохраняются в файл '''build_<username>_tesselate.err''', его можно загрузить и посмотреть в ЛЕ.
+
*'''-skip_aht_tess'''<br />Отключить тесселяцию (подразбиение слишком больших полигонов на более мелкие) на этапе Adaptive HT
*'''-cform_only'''<br />С этим ключом  xrLC формирует [[level.cform]], [[build.cform]] и завершается.
 
  
 
+
----
== Тонкие моменты ==
+
{| style="background-color: #fffdee;" width="100%"
* Компиляцию нельзя поставить на паузу или сохранить прогресс на середине. Но можно перевести компьютер в спящий режим, и скорее всего, при повторном включении компилятор продолжит работу.
+
|<span style="color:#172172;">'''Полезно знать'''</span>
 
+
----
* Перед "чистовой" компиляцией уровня можно перезагрузить компьютер во избежание зависания процесса (актуально для оригинальных компиляторов и СДК)
+
Перед "чистовой" компиляцией уровня можно перезагрузить компьютер во избежание зависания процесса.
 
+
----
* xrLC работает быстрее при закрытом [[LevelEditor]]'е (актуально для оригинальных компиляторов и СДК)
+
xrLC работает быстрее при закрытом [[LevelEditor]]'е.
 
+
----
* Иногда при наличии в папке с xrLC.exe для ЗП файла '''[[ccc__temp__vertices]]''' расчётное время компиляции завышается в разы. Имеет смысл удалять этот файл при запуске компилятора:
+
Иногда при наличии в папке с xrLC.exe для ЗП файла '''[[ccc__temp__vertices]]''' расчетное время компиляции завышается в разы. Имеет смысл удалять этот файл при запуске компилятора:
 
<syntaxhighlight lang="winbatch">del bin\compiliers\ccc__temp__vertices
 
<syntaxhighlight lang="winbatch">del bin\compiliers\ccc__temp__vertices
 
:: так же можно удалить на всякий случай папку с временными файлами
 
:: так же можно удалить на всякий случай папку с временными файлами
 
echo Y|rmdir /s \temp</syntaxhighlight>
 
echo Y|rmdir /s \temp</syntaxhighlight>
 +
----
 +
Если компьютер уходит в спящий режим при работающем xrLC, а менять параметры отключения жёстких дисков не хочется, то запустите фоном какой-либо нетяжелый процесс (например, торрент-клиент).
 +
----
 +
xrLC для ТЧ не учитывает сглаживание, заданное моделям в 3д-редакторе. Используется значение Normal Smooth Angle из настроек сцены [[LE]]. В xrLC для ЧН и ЗП этот режим включается ключом -nosmg
 +
|}
 +
----
  
* Если компьютер уходит в спящий режим при работающем xrLC, а менять параметры отключения жёстких дисков не хочется, то запустите фоном какой-либо нетяжёлый процесс (например, торрент-клиент). Или настройте параметры отключения компьютера :)
+
== Сетевая компиляция ==
 
+
При наличии двух и более производительных машин, объединенных в локальную сеть, имеет смысл использовать версию xrLC с поддержкой распределенных вычислений. В этом случае используются три компонента:
* xrLC для ТЧ не учитывает сглаживание, заданное моделям в 3д-редакторе, взамен используется значение Normal Smooth Angle из настроек сцены [[LE]]. В xrLC для ЧН и ЗП этот режим включается ключом -nosmg
 
 
 
 
 
== Сетевая компиляция (устарело) ==
 
При наличии двух и более производительных машин, объединённых в локальную сеть, имело смысл использовать версию xrLC с поддержкой распределённых вычислений (существует только x86 версия для ЗП). В этом случае используются три компонента:
 
 
# координатор — контролирует и распределяет доступные ресурсы;
 
# координатор — контролирует и распределяет доступные ресурсы;
 
# агент — получает и выполняет задания от координатора;
 
# агент — получает и выполняет задания от координатора;
 
# приложение (xrLC_net) — добавляет задания в очередь выполнения.
 
# приложение (xrLC_net) — добавляет задания в очередь выполнения.
 +
{| style="background-color: #fffdee;" width="100%"
 +
|<span style="color:#172172;">'''Внимание!'''</span>
 +
----
 
Соединение через интернет не рекомендуется по соображениям безопасности.
 
Соединение через интернет не рекомендуется по соображениям безопасности.
 +
|}
  
 
=== Использование ===
 
=== Использование ===
Строка 67: Строка 69:
 
# Запустите координатор и агенты. Агенты транслируются в LAN, найдут координатор, сохранят его IP в '''hxgrid.ini''' (поэтому не имеет смысла самостоятельно задавать <code>coordinator_ip</code>) и будут периодически отсылать ему отчет о своем состоянии.
 
# Запустите координатор и агенты. Агенты транслируются в LAN, найдут координатор, сохранят его IP в '''hxgrid.ini''' (поэтому не имеет смысла самостоятельно задавать <code>coordinator_ip</code>) и будут периодически отсылать ему отчет о своем состоянии.
 
# Запустите компилятор уровней с ключом ''-net''. При инициализации библиотеки hxGrid xrLC найдет координатора, запросит IP-адреса доступных агентов и соединится с ними.<br />
 
# Запустите компилятор уровней с ключом ''-net''. При инициализации библиотеки hxGrid xrLC найдет координатора, запросит IP-адреса доступных агентов и соединится с ними.<br />
Получив задание, координатор и агенты сменят статус на ''Working for […]''<br />
+
Получив задание, координатор и агенты сменят статус на ''Working for […]''
 +
 
  
''После появления исправленных x64 компиляторов эта технология стала неактуальной.''
+
== Ссылки ==
 +
Библиотека [http://www.deep-shadows.com/hax/hxgrid.htm hxGrid] Романа Лута
  
  

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. xrWiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)