Ru/VRAD: Difference between revisions
m (Conform to translation standards.) |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{lang|VRAD}} | {{lang|VRAD|title=VRAD}} | ||
{{toc-right}} | {{toc-right}} | ||
'''VRAD''' это инструмент [[command-line|командной строки]], он | '''VRAD''' — это инструмент [[command-line|командной строки]], он берёт уже готовый BSP и добавляет в него данные об освещении. Статическое и заготовленное освещение функционируют через [[Wikipedia:Radiosity (3D computer graphics)|radiosity]] алгоритм. | ||
VRAD может: | VRAD может: | ||
* Генерировать [[lightmap|карты освещения]] | * Генерировать [[lightmap:ru|карты освещения]]; | ||
* Генерировать [[Ambient light|окружающий свет]] | * Генерировать [[Ambient light|окружающий свет]]; | ||
* Генерировать освещение граней или целых объектов, к примеру [[prop_static]] и [[detail | * Генерировать освещение граней или целых объектов, к примеру [[prop_static:ru|prop_static]] и [[detail_props:ru|detail props]]. | ||
VRAD является самым медленным из компиляторов. [[Lighting optimization| | VRAD является самым медленным из компиляторов. [[Lighting optimization|Оптимизация освещения]] может помочь ускорить процесс, если на карте нет [[leak:ru|утечек]]. | ||
{{tip| Если | {{tip:ru|Если процесс компиляции словно завис на <code>«8...9...»</code> не переживайте, дело в том, что на каждый новый просчёт карты освещения тратится всё больше времени.}} | ||
{{warning|VRAD сильно нагружает процессор во время компиляции!}} | {{warning:ru|VRAD сильно нагружает процессор во время компиляции!}} | ||
{{bug|Если в | {{bug:ru|Если в {{game name|ep1|suf=:ru|name=Half-Life 2: Episode One}} или {{game name|l4d|suf=:ru|name=Left 4 Dead}} во время компиляции освещения в [[HDR:ru|HDR]] происходит сбой, прочтите [[VRAD HDR Crash Fix|это]].}} | ||
{{bug|В серии игр | {{bug:ru|В серии игр {{game name|l4ds|suf=:ru|name=Left 4 Dead}}, <code>«.mdl»</code> модели, которые не имеют <code>«.dx80.vtx»</code> будут проигнорированы компилятором VRAD. Скопируйте <code>«.dx90.vtx»</code> файл и переименуйте его в <code>«.dx80.vtx»</code> чтобы исправить это.}} | ||
= | :Имеется бат-файл, который будет делать это автоматически: [https://drive.google.com/file/d/1OlQcFDlJPbK5vp6PTv7CZGXBjF9Z1UU0/view?usp=sharing Скачать] (разместите файл в папке с моделью и запустите бат-файл.) | ||
{{bug:ru|К тому же, <code>«.mdl»</code> файлы, имеющие заголовок <code>«IDST1»</code> не будут обработаны для [[VBSP:ru|VBSP]], и выдадут сообщение об ошибке, говорящее что модель не удалось загрузить. Это можно исправить, изменив заголовок на <code>«IDST0»</code> в HEX редакторе или перекомпилировав модель не в «{{game name|l4d|suf=:ru|name=Left 4 Dead}} [[Studiomdl:ru|Studiomdl]]», таком как {{game name|src13|suf=:ru|name=Source 2013}}. Можно так же использовать программу [[Crowbar:ru|Crowbar]].}} | |||
{{bug:ru|Уже как минимум 5–10 лет по состоянию на октябрь 2017 года, все известные вариации VRAD компилятора имеют проблему с многоядерными процессорами, вследствие чего нагрузка на процессоре может достигать до 100%, а по факту будет нагружено не более нескольких ядер. Это ощутимо заметно в режиме компиляции <code>«-final»</code> (несмотря на то, что показано 100% использование процессора). Исправление этого бага для {{game name|src13|suf=:ru|name=Source 2013}} доступно [https://github.com/ValveSoftware/source-sdk-2013/pull/436 здесь], а отредактированные DLL библиотеки доступны [http://www.content.tophattwaffle.com/Content/modded_vrad_dll.zip здесь]. Valve также выпустила патч для VRAD {{game name|csgo|suf=:ru|name=Counter-Strike: Global Offensive}}, который исправляет эту проблему.}} | |||
{{bug:ru|Иногда на картах освещения могут быть слишком чёрные тени и грубые переходы от света к темноте.}} | |||
:{{tip:ru|С помощью [https://github.com/Enderlux/sourcelightmap Source Engine BSP Lightmap Editor] можно вручную редактировать уже запечённую карту освещения у готового <code>«.bsp»</code> файла.}} | |||
==Синтаксис== | |||
vrad [options...] <bsp file> | vrad [options...] <bsp file> | ||
Line 32: | Line 33: | ||
"Half-Life 2\bin\vrad.exe" -both -StaticPropLighting sdk_trainstation_01 | "Half-Life 2\bin\vrad.exe" -both -StaticPropLighting sdk_trainstation_01 | ||
Это сгенерирует, а так же встроит и стандартные, и [[HDR|High Dynamic Range]] данные освещения с детализацией по каждой вершине для [[prop_static]]. | Это сгенерирует, а так же встроит и стандартные, и [[HDR:ru|High Dynamic Range]] данные освещения с детализацией по каждой вершине для [[prop_static:ru|prop_static]]. | ||
==Опции== | ==Опции== | ||
Используйте эти комбинации в [[expert compile mode| режиме эксперта]] или в бат-файле. | Используйте эти комбинации в [[expert compile mode|режиме эксперта]] или в бат-файле. | ||
===Эффекты=== | |||
{{ColumnBox|count=2| | {{ColumnBox|count=2| | ||
{{IO|-ldr}} | {{IO|-ldr}} | ||
{{IO|-hdr}} | {{IO|-hdr}} | ||
{{IO|-both|Компилировать ли стандартное или [[HDR|High Dynamic Range]] освещение, либо оба. | {{IO|-both|Компилировать ли стандартное или [[HDR:ru|High Dynamic Range]] освещение, либо оба. | ||
: {{note|В {{insurgency}}{{csgo}}, ОБЯЗАТЕЛЬНО компилировать с <code>-hdr</code> для правильного освещения, т.к. LDR не поддерживается.}}}} | : {{note|В {{insurgency}}{{csgo}}, ОБЯЗАТЕЛЬНО компилировать с <code>-hdr</code> для правильного освещения, т.к. LDR не поддерживается.}}}} | ||
{{IO|-fast|Быстрый и грязный свет. Не используйте этот параметр при релизе. | {{IO|-fast|Быстрый и грязный свет. Не используйте этот параметр при релизе. | ||
: {{Note|<code>-fast</code> | : {{Note|<code>-fast</code> приведёт к появлению случайно окрашенных пятен в тёмных областях.}}}} | ||
{{IO|-final|Улучшает качество {{ent|light_environment}} и непрямого света, затрачивая больше времени на лучи.}} | {{IO|-final|Улучшает качество {{ent|light_environment}} и непрямого света, затрачивая больше времени на лучи.}} | ||
{{IO|-extrasky|param=int|Прослеживает в <code>N</code> раз больше лучшей для непрямого освещения и неба. {{clr}}(<code>-final</code> то же самое, что и <code>-extrasky 16</code>; normal соответствует <code>-extrasky 1</code>)}} | {{IO|-extrasky|param=int|Прослеживает в <code>N</code> раз больше лучшей для непрямого освещения и неба. {{clr}}(<code>-final</code> то же самое, что и <code>-extrasky 16</code>; normal соответствует <code>-extrasky 1</code>)}} | ||
{{IO|-lights <filename>.rad|Загружает пользовательский [[#Lights_files|файл освещения]] в дополнение к <code>lights.rad</code> и файлу освещения непосредственно для этой карты. В | {{IO|-lights <filename>.rad|Загружает пользовательский [[#Lights_files|файл освещения]] в дополнение к <code>lights.rad</code> и файлу освещения непосредственно для этой карты. В этом параметре необходимо указывать расширение файла.}} | ||
{{IO|-bounce|param=int|Устанавливает максимальное число лучей света. (по умолчанию: <code>100</code>).}} | {{IO|-bounce|param=int|Устанавливает максимальное число лучей света. (по умолчанию: <code>100</code>).}} | ||
{{IO|-smooth|param=int|Устанавливает порог для [[smoothing group|групп сглаживания]], в градусах (по умолчанию: <code>45</code>).}} | {{IO|-smooth|param=int|Устанавливает порог для [[smoothing group|групп сглаживания]], в градусах (по умолчанию: <code>45</code>).}} | ||
{{IO|-luxeldensity|param=normal|Уменьшает масштаб всех [[luxel|люкселей]]. По умолчанию (максимальное значение) <code>1</code>.}} | {{IO|-luxeldensity|param=normal|Уменьшает масштаб всех [[luxel|люкселей]]. По умолчанию (максимальное значение) <code>1</code>.}} | ||
{{IO|-softsun|param=float|Рассматривает солнце как источник освещения в этой степени. | {{IO|-softsun|param=float|Рассматривает солнце как источник освещения в этой степени. Создаёт мягкие тени. Рекомендуемые значения <code>0–5</code>, по умолчанию <code>0</code>. Идентично параметру <code>SunSpreadAngle</code> для <code>light_environment</code>, Используйте его вместо этого.}} | ||
{{IO|-StaticPropLighting|генерирует освещение по | {{IO|-StaticPropLighting|генерирует освещение по вершинам {{ent|prop_static}}; всегда включено для энтити {{ent|light_spot}}. Отключает энтити {{ent|info_lighting}} на пропах без [[bump maps|карт рельефа на текстуре]]. Не работает на пропах с картами рельефа на текстуре во всех играх, кроме {{csgo}}. | ||
: {{Warning|Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для пропов, которым это не требуется, чтобы сохранить размер файла небольшим.}} | : {{Warning:ru|Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для пропов, которым это не требуется, чтобы сохранить размер файла небольшим.}} | ||
: {{note|В {{csgo}},чтобы получить правильное освещение на ваших static props, вам нужно запустить VRAD с этим параметром.}}|since=EP2}} | : {{note:ru|В {{csgo}},чтобы получить правильное освещение на ваших static props, вам нужно запустить VRAD с этим параметром.}}|since=EP2}} | ||
{{IO|-StaticPropPolys|Использовать актуальные меши ваших static props для генерации теней вместо использования их [[collision mesh|мешей столкновения]]. Это | {{IO|-StaticPropPolys|Использовать актуальные меши ваших static props для генерации теней вместо использования их [[collision mesh|мешей столкновения]]. Это ведёт к более точному созданию теней.|since=EP2}} | ||
{{IO|-TextureShadows|Генерировать тени карты освещения из {{ent|$translucent}} поверхностей моделей (НЕ брашей), которые указаны в [[#Lights_files|файле освещения]] и используются с [[prop_static]]. Обычно требуют включенного параметра <code>-StaticPropPolys</code>. | {{IO|-TextureShadows|Генерировать тени карты освещения из {{ent|$translucent}} поверхностей моделей (НЕ брашей), которые указаны в [[#Lights_files|файле освещения]] и используются с [[prop_static]]. Обычно требуют включенного параметра <code>-StaticPropPolys</code>. | ||
: {{note|Поверхность требует низкомасштабной [[lightmap|карты освещения]], чтобы большинство текстур теней были узнаваемыми.}} | : {{note:ru|Поверхность требует низкомасштабной [[lightmap|карты освещения]], чтобы большинство текстур теней были узнаваемыми.}} | ||
: {{note|По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.}}|since=EP2}} | : {{note:ru|По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.}}|since=EP2}} | ||
{{IO|-aoscale|param=float|Определяет масштаб интенсивности моделируемой окклюзии VRAD. По умолчанию <code>1.0</code>. | {{IO|-aoscale|param=float|Определяет масштаб интенсивности моделируемой окклюзии VRAD. По умолчанию <code>1.0</code>. | ||
: {{Tip|Valve используют 1.5 для новой Dust 2.}}|since=CSGO}} | : {{Tip:ru|Valve используют 1.5 для новой Dust 2.}}|since=CSGO}} | ||
{{IO|-aoradius|param=float|Устанавливает радиус имитации окклюзии VRAD. {{ | {{IO|-aoradius|param=float|Устанавливает радиус имитации окклюзии VRAD. {{todo:ru|Узнать, как именно.}}|only=Ins}} | ||
{{IO|-aosamples|param=int|Как много сэмплов использовать для имитации окклюзии VRAD.|only=Ins}} | {{IO|-aosamples|param=int|Как много сэмплов использовать для имитации окклюзии VRAD.|only=Ins}} | ||
{{IO|-StaticPropBounce|param=int|Число симуляции световых отражений статических пропов. По умолчанию <code>0</code>. | {{IO|-StaticPropBounce|param=int|Число симуляции световых отражений статических пропов. По умолчанию <code>0</code>. | ||
: {{Tip|Valve используют 3 | : {{Tip:ru|Valve используют 3 отражения статических пропов для новой Dust 2.}} | ||
: {{Note|У любого статического пропа можно отключить световые отражения через ключ "Enable Bounced Lighting".}}|only=CSGO}} | : {{Note:ru|У любого статического пропа можно отключить световые отражения через ключ "Enable Bounced Lighting".}}|only=CSGO}} | ||
{{IO|-StaticPropLightingFinal|Компилирует освещение более высокого качества для статических пропов.|only=CSGO}} | {{IO|-StaticPropLightingFinal|Компилирует освещение более высокого качества для статических пропов.|only=CSGO}} | ||
{{IO|-StaticPropLightingOld|Использовать старый алгоритм освещения для пропов, на них свет влияет сильнее всего.|only=CSGO}} | {{IO|-StaticPropLightingOld|Использовать старый алгоритм освещения для пропов, на них свет влияет сильнее всего.|only=CSGO}} | ||
{{IO|-choptexlights|Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.|only=BMS}} | {{IO|-choptexlights|Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.|only=BMS}} | ||
{{IO|-extratransfers|Включить масштабирование передачи света.|only=BMS}} | {{IO|-extratransfers|Включить масштабирование передачи света.|only=BMS}} | ||
{{IO|-transferscale|param=float|Масштабный коэффициент передачи света. | {{IO|-transferscale|param=float|Масштабный коэффициент передачи света. Увеличенные значения заставляют поверхности передавать больше света (предлагается масштаб <code>2–4</code>). По умолчанию <code>1.0</code>.|only=BMS}} | ||
{{IO|-satthresh|param=float|Порог, определяющий насыщенность цвета материала. Используется вместе с <code>-satthreshscale</code>. По умолчанию 0.4.|only=BMS}} | {{IO|-satthresh|param=float|Порог, определяющий насыщенность цвета материала. Используется вместе с <code>-satthreshscale</code>. По умолчанию 0.4.|only=BMS}} | ||
{{IO|-satthreshscale|param=float|Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.|only=BMS}} | {{IO|-satthreshscale|param=float|Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.|only=BMS}} | ||
}} | }} | ||
=== Производительность === | ===Производительность=== | ||
{{ColumnBox|count=2| | {{ColumnBox|count=2| | ||
{{IO|-low|Запуск процесса с низким приоритетом.}} | {{IO|-low|Запуск процесса с низким приоритетом.}} | ||
{{IO|-threads|param=int|Указать количество задействованных ядер цпу, | {{IO|-threads|param=int|Указать количество задействованных ядер цпу, максимум <code>16</code>. Используя [[Increased_Thread_Limit_for_Compile_Tools|патч vrad_dll]] вы можете расширить предел до <code>32</code>.}} | ||
{{IO|-mpi|Использовать [[Vmpi|VMPI]] для распределения вычислений (не актуально).}} | {{IO|-mpi|Использовать [[Vmpi|VMPI]] для распределения вычислений (не актуально).}} | ||
{{IO|-mpi_pw|param=string|Использовать пароль для | {{IO|-mpi_pw|param=string|Использовать пароль для определённых VMPI шаблонов-режимов.}} | ||
{{IO|-noextra|Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.}} | {{IO|-noextra|Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.}} | ||
{{IO|-chop|param=int| Наименьшее число ширины [[luxel|люкселей]] для патчей отражения, используемых на краях. (По умолчанию: <code>4</code>)}} | {{IO|-chop|param=int| Наименьшее число ширины [[luxel|люкселей]] для патчей отражения, используемых на краях. (По умолчанию: <code>4</code>)}} | ||
{{IO|-maxchop|param=int|Самое грубое допустимое число ширины [[luxel|люкселей]] в патче, используемое на поверхностях интерьера. (По умолчанию: <code>4</code>)}} | {{IO|-maxchop|param=int|Самое грубое допустимое число ширины [[luxel|люкселей]] в патче, используемое на поверхностях интерьера. (По умолчанию: <code>4</code>)}} | ||
{{IO|-dispchop|param=int|Наименьшая приемлемая ширина [[luxel|люкселей]] в поверхностях патча дисплейсментов. (По умолчанию: <code>8</code>)}} | {{IO|-dispchop|param=int|Наименьшая приемлемая ширина [[luxel|люкселей]] в поверхностях патча дисплейсментов. (По умолчанию: <code>8</code>)}} | ||
{{IO|-LargeDispSampleRadius|Это можно использовать, если на поверхности есть пятна | {{IO|-LargeDispSampleRadius|Это можно использовать, если на поверхности есть пятна отражённого света. Компиляция займёт больше времени, но она соберёт свет в более обширных областях.}} | ||
{{IO|-compressconstant|param=int|Сжать [[lightmap|карты освещения]], цветовая вариация которых меньше, чем данное значение.}} | {{IO|-compressconstant|param=int|Сжать [[lightmap:ru|карты освещения]], цветовая вариация которых меньше, чем данное значение.}} | ||
{{IO|-fastambient|Использовать низкое качество выборки для каждого листа, чтобы сэкономить время вычисления.}} | {{IO|-fastambient|Использовать низкое качество выборки для каждого листа, чтобы сэкономить время вычисления.}} | ||
{{IO|-noao|Отключить компиляцию смоделированной окклюзии для карты освещения.|only=Ins}} | {{IO|-noao|Отключить компиляцию смоделированной окклюзии для карты освещения.|only=Ins}} | ||
{{IO|-StaticPropSampleScale|param=int|Регулирует освещение, сгенерированное для каждой вершины проп статик. | {{IO|-StaticPropSampleScale|param=int|Регулирует освещение, сгенерированное для каждой вершины проп статик. | ||
: медленно: 16 (высокое качество); по умолчанию: <code>4</code> (нормальное качество); быстро: <code>0.25</code> (низкое качество) | : медленно: 16 (высокое качество); по умолчанию: <code>4</code> (нормальное качество); быстро: <code>0.25</code> (низкое качество) | ||
: {{note|Параметр <code>-final</code> эквивалентен значению <code>16</code> параметра <code>-StaticPropLightingScale</code>.}}|only=CSGO}} | : {{note:ru|Параметр <code>-final</code> эквивалентен значению <code>16</code> параметра <code>-StaticPropLightingScale</code>.}}|only=CSGO}} | ||
}} | }} | ||
=== Режим отладки=== | ===Режим отладки=== | ||
{{ColumnBox|count=2| | {{ColumnBox|count=2| | ||
{{IO|-rederrors|подсвечивает [[luxel|люксели]] без сэмплов}} | {{IO|-rederrors|подсвечивает [[luxel|люксели]] без сэмплов}} | ||
{{IO|-vproject <directory>}} | {{IO|-vproject <directory>}} | ||
{{IO|-game <directory>|Указать путь к VPROJECT (Game Info).}} | {{IO|-game <directory>|Указать путь к VPROJECT (Game Info).}} | ||
{{IO|-insert_search_path <directory>|{{ | {{IO|-insert_search_path <directory>|{{todo:ru|Что это такое?}}}} | ||
{{IO|-v}} | {{IO|-v}} | ||
{{IO|-verbose|Включить подробный отчёт-вывод.}} | {{IO|-verbose|Включить подробный отчёт-вывод.}} | ||
Line 110: | Line 108: | ||
{{IO|-dumpnormals|Записывать нормали в файл дампа .txt.}} | {{IO|-dumpnormals|Записывать нормали в файл дампа .txt.}} | ||
{{IO|-debugextra|Помещает данные отладки в карты освещения для визуализации суперсэмплинга.}} | {{IO|-debugextra|Помещает данные отладки в карты освещения для визуализации суперсэмплинга.}} | ||
{{IO|-dlightmap|Превращает направленное освещение в разнонаправленные | {{IO|-dlightmap|Превращает направленное освещение в разнонаправленные лайтмапы.}} | ||
{{IO|-stoponexit|Ждать нажатия кнопки, для выхода (закрытия окна).}} | {{IO|-stoponexit|Ждать нажатия кнопки, для выхода (закрытия окна).}} | ||
{{IO|-nodetaillight|Не освещать дитейл пропы (или func_details?).}} | {{IO|-nodetaillight|Не освещать дитейл пропы (или func_details?).}} | ||
Line 116: | Line 114: | ||
{{IO|-loghash| Записать хэш таблицы в samplehash.txt.}} | {{IO|-loghash| Записать хэш таблицы в samplehash.txt.}} | ||
{{IO|-onlydetail|Освещать только детейл пропы и per-leaf.}} | {{IO|-onlydetail|Освещать только детейл пропы и per-leaf.}} | ||
{{IO|-maxdispsamplesize|param=int| Установить | {{IO|-maxdispsamplesize|param=int| Установить максимальный размер сэмплов для дисплейсментов (по умолчанию: <code>512</code>).}} | ||
{{IO|-FullMinidump|Написать большой минидамп при ошибке.}} | {{IO|-FullMinidump|Написать большой минидамп при ошибке.}} | ||
{{IO|-OnlyStaticProps|Выполнять только прямое освещение prop static (или же простое освещение?).}} | {{IO|-OnlyStaticProps|Выполнять только прямое освещение prop static (или же простое освещение?).}} | ||
Line 122: | Line 120: | ||
{{IO|-noskyboxrecurse|Отключить рекурсию для 3d skybox (тени скайбокса на карту).}} | {{IO|-noskyboxrecurse|Отключить рекурсию для 3d skybox (тени скайбокса на карту).}} | ||
{{IO|-nossprops|Отключить все произвольные тени для static props (когда существует тень от бочки, даже карте без освещения.}} | {{IO|-nossprops|Отключить все произвольные тени для static props (когда существует тень от бочки, даже карте без освещения.}} | ||
{{IO|-dumppropmaps|Сдампить (слить) вычисленные карты освещения. |only=2013MP}} | {{IO|-dumppropmaps|Сдампить (слить) вычисленные карты освещения.|only=2013MP}} | ||
}} | }} | ||
==Файлы статического освещения== | ==Файлы статического освещения== | ||
Файл освещения представляет собой обычный TXT документ [[VRAD:ru|VRAD]], который вы можете править. Он указывает какие [[material:ru|материалы]] могут излучать статическое освещение. Ваши <code>«.rad»</code> файлы должны находиться в той же папке, где и [[gameinfo.txt:ru|gameinfo.txt]]. | |||
Файл освещения представляет собой обычный TXT документ [[VRAD:ru|VRAD]], который вы можете править. Он указывает какие [[material:ru|материалы]] могут излучать статическое освещение. Ваши <code>. | |||
Также: | Также: | ||
#'''<code>lights.rad</code>''', является глобальным файлом (используется всеми картами). | #'''<code>lights.rad</code>''', является глобальным файлом (используется всеми картами). | ||
#'''Для автозагрузки файла освещения''', нужно использовать <code><имя карты>. | #'''Для автозагрузки файла освещения''', нужно использовать <code>«<имя карты>.rad»</code>. файл должен быть расположен там же, где и <code>«<имя карты>.vmf»</code>. | ||
#'''Любое количество файлов освещения''' могут быть добавлены в карту, если использовать [[#Effects| | #'''Любое количество файлов освещения''' могут быть добавлены в карту, если использовать [[#Effects|-lights параметр]]. | ||
===Правила-Условия=== | |||
:[[Image:Lightsrad_light_generation.png|thumb|300px|light энтити, который расставляется движком на расстоянии каждые 4 люкселя]] | |||
Чтобы файлы освещения работали правильно, на каждую отдельную текстуру должна идти отдельная строка по следующему шаблону: | Чтобы файлы освещения работали правильно, на каждую отдельную текстуру должна идти отдельная строка по следующему шаблону: | ||
Line 142: | Line 139: | ||
:Материал должен покрывать грани обычных [[brush:ru|брашей]] (<code>hdr_</code> значение не обязательно). Размер текстуры в хаммере напрямую влияет на степень яркости. | :Материал должен покрывать грани обычных [[brush:ru|брашей]] (<code>hdr_</code> значение не обязательно). Размер текстуры в хаммере напрямую влияет на степень яркости. | ||
:{{Note|На самом деле не текстура излучает свет, это делает обычный {{ent|light}} энтити, | :{{Note:ru|На самом деле не текстура излучает свет, это делает обычный {{ent|light}} энтити, который расставляется движком на расстоянии каждые 4 [[luxel:ru|люкселя]]. Иногда быстрее и разумней будет сделать это вручную в хаммере.}} | ||
:{{note|Текстуры, которые не лежат в папке Light, а находятся просто в materials, должны иметь перед своим именем слеш /ИМЯ_ТЕКСТУРЫ.}} | :{{note:ru|Текстуры, которые не лежат в папке Light, а находятся просто в materials, должны иметь перед своим именем слеш /ИМЯ_ТЕКСТУРЫ.}} | ||
{{warning|[[func_detail]] на которых будут нанесены текстуры излучающие свет, возможно не обработаются VRAD.}} | {{warning:ru|[[func_detail]] на которых будут нанесены текстуры излучающие свет, возможно не обработаются VRAD.}} | ||
;<code>noshadow <имя текстуры></code> | ;<code>noshadow <имя текстуры></code> | ||
:Запрещает данной текстуре отбрасывать тень. | :Запрещает данной текстуре отбрасывать тень. | ||
Line 155: | Line 152: | ||
:Строки, начинающиеся с обоих тегов (в таком порядке), всегда будут игнорироваться VRAD. Может использоваться для добавления комментариев или быстрого отключения некоторых параметров. | :Строки, начинающиеся с обоих тегов (в таком порядке), всегда будут игнорироваться VRAD. Может использоваться для добавления комментариев или быстрого отключения некоторых параметров. | ||
== | ==См. также== | ||
* [[Map Compiling Theory]] | * [[Map Compiling Theory:ru|Теория компиляции карт]] | ||
* [[HDR Lighting Basics]] | * [[HDR Lighting Basics:ru|Основы освещения HDR]] | ||
* [[VRAD HDR Crash Fix]] | * [[VRAD HDR Crash Fix]] | ||
* [[Static Props show up black]] | * [[Static Props show up black]] |
Revision as of 11:55, 29 December 2021
VRAD — это инструмент командной строки, он берёт уже готовый BSP и добавляет в него данные об освещении. Статическое и заготовленное освещение функционируют через radiosity алгоритм.
VRAD может:
- Генерировать карты освещения;
- Генерировать окружающий свет;
- Генерировать освещение граней или целых объектов, к примеру prop_static и detail props.
VRAD является самым медленным из компиляторов. Оптимизация освещения может помочь ускорить процесс, если на карте нет утечек.
Template:Tip:ru Template:Warning:ru
- Имеется бат-файл, который будет делать это автоматически: Скачать (разместите файл в папке с моделью и запустите бат-файл.)
Template:Bug:ru Template:Bug:ru Template:Bug:ru
Синтаксис
vrad [options...] <bsp file>
Пример:
"Half-Life 2\bin\vrad.exe" -both -StaticPropLighting sdk_trainstation_01
Это сгенерирует, а так же встроит и стандартные, и High Dynamic Range данные освещения с детализацией по каждой вершине для prop_static.
Опции
Используйте эти комбинации в режиме эксперта или в бат-файле.
Эффекты
- -ldr
- -hdr
- -both
- Компилировать ли стандартное или High Dynamic Range освещение, либо оба.
- -fast
- Быстрый и грязный свет. Не используйте этот параметр при релизе.
Примечание:
-fast
приведёт к появлению случайно окрашенных пятен в тёмных областях.
- -final
- Улучшает качество light_environment и непрямого света, затрачивая больше времени на лучи.
- -extrasky <целое число >
- Прослеживает в
N
раз больше лучшей для непрямого освещения и неба. (-final
то же самое, что и-extrasky 16
; normal соответствует-extrasky 1
)
- -lights <filename>.rad
- Загружает пользовательский файл освещения в дополнение к
lights.rad
и файлу освещения непосредственно для этой карты. В этом параметре необходимо указывать расширение файла.
- -bounce <целое число >
- Устанавливает максимальное число лучей света. (по умолчанию:
100
).
- -smooth <целое число >
- Устанавливает порог для групп сглаживания, в градусах (по умолчанию:
45
).
- -softsun <число с плавающей запятой >
- Рассматривает солнце как источник освещения в этой степени. Создаёт мягкие тени. Рекомендуемые значения
0–5
, по умолчанию0
. Идентично параметруSunSpreadAngle
дляlight_environment
, Используйте его вместо этого.
- -StaticPropLighting (Во всех играх начиная с
)
- генерирует освещение по вершинам prop_static; всегда включено для энтити light_spot. Отключает энтити info_lighting на пропах без карт рельефа на текстуре. Не работает на пропах с картами рельефа на текстуре во всех играх, кроме
.
- Template:Warning:ru
- Template:Note:ru
- -StaticPropPolys (Во всех играх начиная с
)
- Использовать актуальные меши ваших static props для генерации теней вместо использования их мешей столкновения. Это ведёт к более точному созданию теней.
- -TextureShadows (Во всех играх начиная с
)
- Генерировать тени карты освещения из $translucent поверхностей моделей (НЕ брашей), которые указаны в файле освещения и используются с prop_static. Обычно требуют включенного параметра
-StaticPropPolys
. - Template:Note:ru
- Template:Note:ru
- -aoscale <число с плавающей запятой > (Во всех играх начиная с
)
- Определяет масштаб интенсивности моделируемой окклюзии VRAD. По умолчанию
1.0
. - Template:Tip:ru
- -aoradius <число с плавающей запятой > (только в
)
- Устанавливает радиус имитации окклюзии VRAD. Template:Todo:ru
- -aosamples <целое число > (только в
)
- Как много сэмплов использовать для имитации окклюзии VRAD.
- -StaticPropBounce <целое число > (только в
)
- Число симуляции световых отражений статических пропов. По умолчанию
0
. - Template:Tip:ru
- Template:Note:ru
- -StaticPropLightingFinal (только в
)
- Компилирует освещение более высокого качества для статических пропов.
- -StaticPropLightingOld (только в
)
- Использовать старый алгоритм освещения для пропов, на них свет влияет сильнее всего.
- -choptexlights (только в
)
- Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.
- -transferscale <число с плавающей запятой > (только в
)
- Масштабный коэффициент передачи света. Увеличенные значения заставляют поверхности передавать больше света (предлагается масштаб
2–4
). По умолчанию1.0
.
- -satthresh <число с плавающей запятой > (только в
)
- Порог, определяющий насыщенность цвета материала. Используется вместе с
-satthreshscale
. По умолчанию 0.4.
- -satthreshscale <число с плавающей запятой > (только в
)
- Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.
Производительность
- -low
- Запуск процесса с низким приоритетом.
- -threads <целое число >
- Указать количество задействованных ядер цпу, максимум
16
. Используя патч vrad_dll вы можете расширить предел до32
.
- -mpi
- Использовать VMPI для распределения вычислений (не актуально).
- -mpi_pw <строка >
- Использовать пароль для определённых VMPI шаблонов-режимов.
- -noextra
- Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.
- -chop <целое число >
- Наименьшее число ширины люкселей для патчей отражения, используемых на краях. (По умолчанию:
4
)
- -maxchop <целое число >
- Самое грубое допустимое число ширины люкселей в патче, используемое на поверхностях интерьера. (По умолчанию:
4
)
- -dispchop <целое число >
- Наименьшая приемлемая ширина люкселей в поверхностях патча дисплейсментов. (По умолчанию:
8
)
- -LargeDispSampleRadius
- Это можно использовать, если на поверхности есть пятна отражённого света. Компиляция займёт больше времени, но она соберёт свет в более обширных областях.
- -compressconstant <целое число >
- Сжать карты освещения, цветовая вариация которых меньше, чем данное значение.
- -fastambient
- Использовать низкое качество выборки для каждого листа, чтобы сэкономить время вычисления.
- -StaticPropSampleScale <целое число > (только в
)
- Регулирует освещение, сгенерированное для каждой вершины проп статик.
- медленно: 16 (высокое качество); по умолчанию:
4
(нормальное качество); быстро:0.25
(низкое качество) - Template:Note:ru
Режим отладки
- -rederrors
- подсвечивает люксели без сэмплов
- -vproject <directory>
- -game <directory>
- Указать путь к VPROJECT (Game Info).
- -insert_search_path <directory>
- Template:Todo:ru
- -v
- -verbose
- Включить подробный отчёт-вывод.
- -novconfig
- Не запускать игру при наличии ошибок с Vconfig (при проблемах с поиском контента игры.
- -dump
- Сброс патчей для отладки файлов.
- -dumpnormals
- Записывать нормали в файл дампа .txt.
- -debugextra
- Помещает данные отладки в карты освещения для визуализации суперсэмплинга.
- -dlightmap
- Превращает направленное освещение в разнонаправленные лайтмапы.
- -stoponexit
- Ждать нажатия кнопки, для выхода (закрытия окна).
- -nodetaillight
- Не освещать дитейл пропы (или func_details?).
- -centersamples
- Переместить сэмплы в центр.
- -loghash
- Записать хэш таблицы в samplehash.txt.
- -onlydetail
- Освещать только детейл пропы и per-leaf.
- -maxdispsamplesize <целое число >
- Установить максимальный размер сэмплов для дисплейсментов (по умолчанию:
512
).
- -FullMinidump
- Написать большой минидамп при ошибке.
- -OnlyStaticProps
- Выполнять только прямое освещение prop static (или же простое освещение?).
- -StaticPropNormals
- Когда освещаются static props, просто отображать направление нормалей.
- -noskyboxrecurse
- Отключить рекурсию для 3d skybox (тени скайбокса на карту).
- -nossprops
- Отключить все произвольные тени для static props (когда существует тень от бочки, даже карте без освещения.
Файлы статического освещения
Файл освещения представляет собой обычный TXT документ VRAD, который вы можете править. Он указывает какие материалы могут излучать статическое освещение. Ваши «.rad»
файлы должны находиться в той же папке, где и gameinfo.txt.
Также:
lights.rad
, является глобальным файлом (используется всеми картами).- Для автозагрузки файла освещения, нужно использовать
«<имя карты>.rad»
. файл должен быть расположен там же, где и«<имя карты>.vmf»
. - Любое количество файлов освещения могут быть добавлены в карту, если использовать -lights параметр.
Правила-Условия
Чтобы файлы освещения работали правильно, на каждую отдельную текстуру должна идти отдельная строка по следующему шаблону:
<material> <red> <green> <blue> <intensity> <hdr_red> <hdr_green> <hdr_blue> <hdr_intensity>
- Материал должен покрывать грани обычных брашей (
hdr_
значение не обязательно). Размер текстуры в хаммере напрямую влияет на степень яркости.
noshadow <имя текстуры>
- Запрещает данной текстуре отбрасывать тень.
forcetextureshadow <путь к модели>.mdl
- Включает тестирование полупрозрачной тени для модели, когда VRAD запускается с
-TextureShadows
. нужно указать папку расположения модели. ldr:
hdr:
- Префиксы для выполнения в режиме LDR или HDR.
hdr:ldr:
- Строки, начинающиеся с обоих тегов (в таком порядке), всегда будут игнорироваться VRAD. Может использоваться для добавления комментариев или быстрого отключения некоторых параметров.