Эта статья документации для всего, что использует платформу Source. Нажмите для получения дополнительной информации.

Ru/VRAD: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (Removed double spaces, double dots. Fixed incorrect display of link to "Source Engine BSP Lightmap Editor". Fixed punctuation, changed and added some other, minor changes.)
(Update translate.)
 
(46 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar|title=Компилятор освещения VRAD}}
|zh-cn = Vrad:zh-cn
{{src topicon}}
|en = Vrad
{{map compile pipeline|source1}}
}}
 
{{toc-right}}
{{toc-right}}


'''VRAD''' это инструмент [[command-line|командной строки]], он берет уже готовый BSP и добавляет в него данные об освещении. Статическое и заготовленное освещение функционируют через [[radiosity]] алгоритм.
{{vrad|4}} — это инструмент {{L|command-line|командной строки}}, который использует имеющийся BSP-файл и добавляет в него данные об освещении. Статичное и заготовленное освещение распостраняется VRAD на весь мир карты посредством алгоритма [[Wikipedia:Radiosity (3D computer graphics)|излучения света]].
 
Что делает VRAD:


VRAD может:
* Рассчитывает {{L|lightmap|карты освещения}};
* Рассчитывает освещение {{L|Ambient light|рассеяным светом}};
* Рассчитывает освещение по вершинам геометрии, например для {{L|prop_static|реквизит-объектов (prop_static)}};
* Рассчитывает освещение для объектов целиком, например для {{L|detail props|мелких реквизит-объектов (detail props)}}.


* Генерировать [[lightmap|карты освещения]]
VRAD является самым долгим из компиляторов, из-за прогрессирующего количества операций расчёта. {{L|Lighting optimization|Оптимизация освещения}} может помочь ускорить процесс, если на карте нет {{L|Leak|утечек}}.
* Генерировать [[Ambient light|окружающий свет]]
* Генерировать освещение граней или целых объектов, к примеру [[prop_static]] и [[detail prop]]


VRAD является самым медленным из компиляторов. [[Lighting optimization|оптимизация освещения]] может помочь ускорить процесс, если на карте нет [[leak|утечек]].
{{tip|Если процесс компиляции словно завис на <code>«8...9...»</code> не переживайте, дело в том, что на каждую последующую итерацию расчёта карты освещения тратится всё больше времени.}}
{{warning|VRAD сильно использует ресурсы процессора во время компиляции!}}


{{tip| Если Вы наблюдаете как процесс компиляции словно завис на <code>9...</code> не переживайте, дело в том, что на каждый новый просчет карты освещения тратится всё больше времени.}}
{{bug|hidetested=1|Если в {{ep1|4}} или {{Left 4 Dead|4}} во время компиляции освещения в {{L|HDR}} происходит сбой, прочтите {{L|VRAD HDR Crash Fix|это}}.}}
{{warning|VRAD сильно нагружает процессор во время компиляции!}}


{{bug|Если в EP1 или L4D во время компиляции освещения в [[HDR]] происходит сбой, прочтите [[VRAD HDR Crash Fix|это]].}}
{{bug|hidetested=1|В серии игр {{Left 4 Dead|4}}, <code>«.mdl»</code> модели, которые не имеют <code>«.dx80.vtx»</code> будут проигнорированы компилятором VRAD. Скопируйте <code>«.dx90.vtx»</code> файл и переименуйте его в <code>«.dx80.vtx»</code> чтобы исправить это.}}


{{bug|В серии игр L4D, <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 Скачать] (разместите файл в папке с моделью и запустите бат-файл.)
Имеется бат-файл, который будет это делать автоматически: [https://drive.google.com/file/d/1OlQcFDlJPbK5vp6PTv7CZGXBjF9Z1UU0/view?usp=sharing|Скачать] (разместите файл в папке с моделью и запустите бат-файл.)
{{bug|К тому же, <code>.mdl</code> файлы, имеющие заголовок <code>IDST1</code> не будут обработаны для [[VBSP]], и выдадут сообщение об ошибке, говорящее что модель не удалось загрузить; это можно исправить, изменив заголовок на <code>IDST0</code> в HEX редакторе или перекомпилировав модель в не L4D [[Studiomdl]], таком как Source 2013. Можно так же использовать [[Crowbar]].}}
{{bug|Уже как минимум 5-10 лет по состоянию на октябрь 2017 года, все известные вариации VRAD компилятора имеют проблему с многоядерными процессорами, вследствие чего нагрузка на процессоре может достигать до 100%, а по факту будет нагружено не более нескольких ядер. Это ощутимо заметно в режиме полной компиляции <code>-final</code> (несмотря на то, что показано 100% использование процессора). Исправление этого бага для Source 2013 доступно [https://github.com/ValveSoftware/source-sdk-2013/pull/436 здесь], а отредактированные библиотеки DLL доступны [http://www.content.tophattwaffle.com/Content/modded_vrad_dll.zip здесь]. Valve также выпустила патч для VRAD CS GO, который исправляет эту проблему.}}
{{bug|Иногда на карта освещения могут быть слишком черные тени и грубые переходы от света к темноте.}}
: {{tip|С помощью [https://github.com/Enderlux/sourcelightmap Source Engine BSP Lightmap Editor] можно вручную редактировать УЖЕ ЗАПЕЧЕННУЮ карту освещения у готовой <code>.bsp</code>.}}


== Синтаксис ==
{{bug|hidetested=1|К тому же, <code>«.mdl»</code> файлы, имеющие заголовок <code>«IDST1»</code> не будут обработаны для {{L|VBSP}}, и выдадут сообщение об ошибке, говорящее что модель не удалось загрузить. Это можно исправить, изменив заголовок на <code>«IDST0»</code> в HEX редакторе или перекомпилировав модель не в «{{Left 4 Dead|4}} {{L|StudioMDL (Source)|Studiomdl}}», таком как {{src13|4}}. Можно так же использовать программу {{L|Crowbar}}.}}
{{bug|hidetested=1|Уже как минимум 5–10 лет по состоянию на октябрь 2017 года, все известные вариации VRAD компилятора имеют проблему с многоядерными процессорами, вследствие чего нагрузка на процессоре может достигать до 100%, а по факту будет нагружено не более нескольких ядер. Это ощутимо заметно в режиме компиляции <code>«-final»</code> (несмотря на то, что показано 100% использование процессора). Исправление этого бага для {{src13|4}} доступно [https://github.com/ValveSoftware/source-sdk-2013/pull/436 здесь], а отредактированные DLL библиотеки доступны [http://www.content.tophattwaffle.com/Content/modded_vrad_dll.zip здесь]. Valve также выпустила патч для VRAD {{Counter-Strike: Global Offensive|4}}, который исправляет эту проблему.}}
{{bug|hidetested=1|Иногда на картах освещения могут быть слишком чёрные тени и грубые переходы от света к темноте.}}
:{{tip|С помощью [https://github.com/Enderlux/sourcelightmap Source Engine BSP Lightmap Editor] можно вручную редактировать уже запечённую карту освещения у готового <code>«.bsp»</code> файла.}}


==Синтаксис==
  vrad [options...] <bsp file>
  vrad [options...] <bsp file>


Line 35: Line 37:
  "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]].
Это сгенерирует и встроит в файл карты как стандартное освещение, так и данные для {{L|HDR|широкого диапазона яркости}} с детализацией по каждой вершине для {{L|prop_static}}.


==Опции==
==Параметры==


Используйте эти комбинации в [[expert compile mode| режиме эксперта]] или в бат-файле.
Используйте эти комбинации в {{L|expert compile mode|режиме эксперта}} или в bat-файле.


=== Эффекты ===
===Эффекты===
 
{{ColumnBox|count=2|{{CLParam|-ldr|Компилировать освещение в малом диапазоне яркости. {{warning|{{insurgency}} и {{csgo}} не поддерживают LDR. Для правильного освещения используйте -both или -hdr}}
{{ColumnBox|count=2|
{{CLParam|-hdr|Компилировать освещение с {{L|HDR|Широким Динамическим Диапазоном}} яркости.}}
{{IO|-ldr}}
{{CLParam|-both|Компилировать освещение как в LDR, так и в HDR.}}
{{IO|-hdr}}
{{CLParam|-fast|Компиляция освещения низкого качества. Используются для быстрого предпросмотра карты.
{{IO|-both|Компилировать ли стандартное или [[HDR|High Dynamic Range]] освещение, либо оба.
: {{note|{{MdCode|outline|-fast}} приведёт к появлению случайных неправильно окрашенных пятен в тёмных областях карты. <br>Не используйте эту опцию для исправления проблем с освещением.}}}}
: {{note|В {{insurgency}}{{csgo}}, ОБЯЗАТЕЛЬНО компилировать с <code>-hdr</code> для правильного освещения, т.к. LDR не поддерживается.}}}}
{{CLParam|-final|Улучшает качество {{ent|light_environment}} и непрямого света, затрачивая больше времени на лучи.}}
{{IO|-fast|Быстрый и грязный свет. Не используйте этот параметр при релизе.
{{CLParam|-extrasky|param=int|Прослеживает в <code>N</code> раз больше лучшей для непрямого освещения и неба. {{clr}}(<code>-final</code> то же самое, что и <code>-extrasky 16</code>; normal соответствует <code>-extrasky 1</code>)}}
: {{Note|<code>-fast</code> приведет к появлению случайно окрашенных пятен в темных областях.}}}}
{{CLParam|-lights <filename>.rad|Загружает пользовательский [[#Lights_files|файл освещения]] в дополнение к <code>lights.rad</code> и файлу освещения непосредственно для этой карты. В этом параметре необходимо указывать расширение файла.}}
{{IO|-final|Улучшает качество {{ent|light_environment}} и непрямого света, затрачивая больше времени на лучи.}}
{{CLParam|-bounce|param=int|Устанавливает максимальное количество отражений лучей света. (по умолчанию: <code>100</code>).}}
{{IO|-extrasky|param=int|Прослеживает в <code>N</code> раз больше лучшей для непрямого освещения и неба. {{clr}}(<code>-final</code> то же самое, что и <code>-extrasky 16</code>; normal соответствует <code>-extrasky 1</code>)}}
{{CLParam|-smooth|param=int|Устанавливает порог для {{L|smoothing group|групп сглаживания}}, в градусах (по умолчанию: <code>45</code>).}}
{{IO|-lights <filename>.rad|Загружает пользовательский [[#Lights_files|файл освещения]] в дополнение к <code>lights.rad</code> и файлу освещения непосредственно для этой карты. В этот параметре необходимо указывать расширение файла.}}
{{CLParam|-luxeldensity|param=normal|Уменьшает масштаб всех {{L|luxel|люкселей}}. По умолчанию (максимальное значение) <code>1</code>.}} {{warning|Устновка слишком малого значения может привести к дефектам освещения.}}}}
{{IO|-bounce|param=int|Устанавливает максимальное число лучей света. (по умолчанию: <code>100</code>).}}
{{CLParam|-softsun|param=float|Рассматривает солнце как объёмный источник рассеянного света. Создаёт мягкие тени. Рекомендуемые значения <code>0–5</code>, по умолчанию <code>0</code>. Идентично параметру <code>SunSpreadAngle</code> для <code>light_environment</code>, Используйте его вместо этого.}}
{{IO|-smooth|param=int|Устанавливает порог для [[smoothing group|групп сглаживания]], в градусах (по умолчанию: <code>45</code>).}}
{{CLParam|-StaticPropLighting|Рассчитывает освещение по вершинам на объектах {{L|prop_static}}; всегда включено для объекта {{ent|light_spot}}. Не учитывает {{L|info_lighting|точку освещения}} для расчёта освещения объектов без {{L|bump maps|карт рельефа на текстуре}} или {{L|$phong}} . Не работает на {{L|prop_static}} с картами рельефа на текстуре во всех играх, кроме {{csgo}}.
{{IO|-luxeldensity|param=normal|Уменьшает масштаб всех [[luxel|люкселей]]. По умолчанию (максимальное значение) <code>1</code>.}}
: {{warning|Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для объектов, которым это не требуется, чтобы сохранить наименьшй размер файла.}}
{{IO|-softsun|param=float|Рассматривает солнце как источник освещения в этой степени. Создает мягкие тени. Рекомендуемые значения <code>0-5</code>, по умолчанию <code>0</code>. Идентично параметру <code>SunSpreadAngle</code> для <code>light_environment</code>, Используйте его вместо этого.}}
: {{note|Чтобы в {{csgo}} получить правильное освещение на статичных реквизит-объектах, нужно запустить VRAD с этим параметром.}}|game={{since|{{Ep2}}}}}}
{{IO|-StaticPropLighting|генерирует освещение по вершинена {{ent|prop_static}}ах; всегда включено для энтити {{ent|light_spot}}. Отключает энтити {{ent|info_lighting}} на пропах без [[bump maps|карт рельефа на текстуре]]. Не работает на пропах с картами рельефа на текстуре во всех играх, кроме {{csgo}}.
{{CLParam|-StaticPropPolys|Использовать для создания теней непосредственно модели {{L|prop_static}} вместо их {{L|collision mesh|габаритов столкновений}} для получения более точного отображения теней.|game={{since|{{Ep2}}}}}}
: {{Warning|Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для пропов, которым это не требуется, чтобы сохранить размер файла небольшим.}}
{{CLParam|-TextureShadows|Генерировать тени карты освещения из {{ent|$translucent}} поверхностей моделей (НЕ брашей), которые указаны в [[#Lights_files|файле освещения]] и используются с {{L|prop_static}}. Обычно требуют включенного параметра <code>-StaticPropPolys</code>.
: {{note|В {{csgo}},чтобы получить правильное освещение на ваших static props, вам нужно запустить VRAD с этим параметром.}}|since=EP2}}
: {{note|Поверхность требует низкомасштабной {{L|lightmap|карты освещения}}, чтобы большинство текстур теней были узнаваемыми.}}
{{IO|-StaticPropPolys|Использовать актуальные меши ваших static props для генерации теней вместо использования их [[collision mesh|мешей столкновения]]. Это ведет к более точному созданию теней.|since=EP2}}
: {{note|По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.}}|game={{since|{{Ep2}}}}}}
{{IO|-TextureShadows|Генерировать тени карты освещения из {{ent|$translucent}} поверхностей моделей (НЕ брашей), которые указаны в [[#Lights_files|файле освещения]] и используются с [[prop_static]]. Обычно требуют включенного параметра <code>-StaticPropPolys</code>.
{{CLParam|-aoscale|param=float|Определяет масштаб интенсивности имитации VRAD прикрытия рассеяного света. По умолчанию <code>1.0</code>.
: {{note|Поверхность требует низкомасштабной [[lightmap|карты освещения]], чтобы большинство текстур теней были узнаваемыми.}}
: {{tip|Valve используют 1.5 для новой Dust 2.}}|game={{since|{{csgo}}}}}}
: {{note|По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.}}|since=EP2}}
:{{expand|title=-aoscale - Примеры|<gallery mode=nolines widths=320px heights=192px>
{{IO|-aoscale|param=float|Определяет масштаб интенсивности моделируемой окклюзии VRAD. По умолчанию <code>1.0</code>.
File:VRAD AO Scale 0.25.jpg|{{code|-aoscale}} set to {{code|0.25}}
: {{Tip|Valve используют 1.5 для новой Dust 2.}}|since=CSGO}}
File:VRAD AO Scale 2.0.jpg|{{code|-aoscale}} set to {{code|2.0}}
{{IO|-aoradius|param=float|Устанавливает радиус имитации окклюзии VRAD. {{TODO|Узнать, как именно.}}|only=Ins}}
</gallery>
{{IO|-aosamples|param=int|Как много сэмплов использовать для имитации окклюзии VRAD.|only=Ins}}
}}
{{IO|-StaticPropBounce|param=int|Число симуляции световых отражений статических пропов. По умолчанию <code>0</code>.
{{CLParam|-aoradius|param=float|Устанавливает радиус для имитации VRAD прикрытия рассеяного света. {{todo|Узнать, как именно.}}|game={{only|{{Insurgency}}}}}}
: {{Tip|Valve используют 3 три отражения статических пропов для новой Dust 2.}}
{{CLParam|-aosamples|param=int|Как много образцов использовать VRAD для имитации прикрытия рассеяного света.|game={{only|{{Insurgency}}}}}}
: {{Note|У любого статического пропа можно отключить световые отражения через ключ "Enable Bounced Lighting".}}|only=CSGO}}
{{CLParam|-StaticPropBounce|param=int|Число отражений света на статичных реквизит-объектах для симуляции. По умолчанию <code>0</code>.
{{IO|-StaticPropLightingFinal|Компилирует освещение более высокого качества для статических пропов.|only=CSGO}}
: {{tip|Valve используют 3 отражения на статичных реквизит-объектов в новом Dust 2.}}
{{IO|-StaticPropLightingOld|Использовать старый алгоритм освещения для пропов, на них свет влияет сильнее всего.|only=CSGO}}
: {{note|У любого статичного реквизит-объекта можно отключить световые отражения через ключ "Enable Bounced Lighting".}}|game={{only|{{csgo}}}}}}
{{IO|-choptexlights|Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.|only=BMS}}
{{CLParam|-StaticPropLightingFinal|Компилирует освещение более высокого качества для статичных реквизит-объектов.|game={{only|{{csgo}}}}}}
{{IO|-extratransfers|Включить масштабирование передачи света.|only=BMS}}
{{CLParam|-StaticPropLightingOld|Использовать старый алгоритм освещения для реквизит-объектов, на них свет влияет сильнее всего.|game={{only|{{csgo}}}}}}
{{IO|-transferscale|param=float|Масштабный коэффициент передачи света. Увеличанные значения заставляют поверхности передавать больше света (предлагается масштаб <code>2-4</code>). По умолчанию <code>1.0</code>.|only=BMS}}
{{CLParam|-choptexlights|Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.|game={{only|{{BMS}}}}}}
{{IO|-satthresh|param=float|Порог, определяющий насыщенность цвета материала. Используется вместе с <code>-satthreshscale</code>. По умолчанию 0.4.|only=BMS}}
{{CLParam|-extratransfers|Включить масштабирование передачи света.|game={{only|{{BMS}}}}}}
{{IO|-satthreshscale|param=float|Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.|only=BMS}}
{{CLParam|-transferscale|param=float|Масштабный коэффициент передачи света. Увеличенные значения заставляют поверхности передавать больше света (предлагается масштаб <code>2–4</code>). По умолчанию <code>1.0</code>.|game={{only|{{BMS}}}}}}
{{CLParam|-satthresh|param=float|Порог, определяющий насыщенность цвета материала. Используется вместе с <code>-satthreshscale</code>. По умолчанию 0.4.|game={{only|{{BMS}}}}}}
{{CLParam|-satthreshscale|param=float|Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.|game={{only|{{BMS}}}}}}
}}
}}


=== Производительность ===
===Производительность===
 
{{ColumnBox|count=2|{{CLParam|-low|Запуск компилятора как процесса с низким приоритетом.}}
{{ColumnBox|count=2|
{{CLParam|-threads|param=int|Указать количество задействованных процессоров/ядер, максимум <code>16</code>. Используя {{L|Increased_Thread_Limit_for_Compile_Tools|патч vrad_dll}} вы можете расширить предел до <code>32</code>.}}
{{IO|-low|Запуск процесса с низким приоритетом.}}
{{CLParam|-mpi|Использовать {{L|Vmpi|VMPI}} для распределения вычислений (не актуально).}}
{{IO|-threads|param=int|Указать количество задействованных ядер цпу, макс <code>16</code>. Используя [[Increased_Thread_Limit_for_Compile_Tools|патч vrad_dll]] вы можете расширить до <code>32</code>.}}
{{CLParam|-mpi_pw|param=string|Использовать пароль для определённых VMPI шаблонов-режимов.}}
{{IO|-mpi|Использовать [[Vmpi|VMPI]] для распределения вычислений (не актуально).}}
{{CLParam|-noextra|Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.}}
{{IO|-mpi_pw|param=string|Использовать пароль для определенных VMPI шаблонов-режимов.}}
{{CLParam|-chop|param=int| Наименьшее число ширины {{L|luxel|люкселей}} для патчей отражения, используемых на краях. (По умолчанию: <code>4</code>)}}
{{IO|-noextra|Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.}}
{{CLParam|-maxchop|param=int|Самое грубое допустимое число ширины {{L|luxel|люкселей}} в патче, используемое на поверхностях интерьера. (По умолчанию: <code>4</code>)}}
{{IO|-chop|param=int| Наименьшее число ширины [[luxel|люкселей]] для патчей отражения, используемых на краях. (По умолчанию: <code>4</code>)}}
{{CLParam|-dispchop|param=int|Наименьшая приемлемая ширина {{L|luxel|люкселей}} в поверхностях патча дисплейсментов. (По умолчанию: <code>8</code>)}}
{{IO|-maxchop|param=int|Самое грубое допустимое число ширины [[luxel|люкселей]] в патче, используемое на поверхностях интерьера. (По умолчанию: <code>4</code>)}}
{{CLParam|-LargeDispSampleRadius|Это можно использовать, если на поверхности есть пятна отражённого света. Компиляция займёт больше времени, но она соберёт свет в более обширных областях.}}
{{IO|-dispchop|param=int|Наименьшая приемлемая ширина [[luxel|люкселей]] в поверхностях патча дисплейсментов. (По умолчанию: <code>8</code>)}}
{{CLParam|-compressconstant|param=int|Сжать {{L|lightmap|карты освещения}}, цветовая вариация которых меньше, чем данное значение.}}
{{IO|-LargeDispSampleRadius|Это можно использовать, если на поверхности есть пятна отраженного света. Компиляция займет больше времени, но она соберет свет в более обширных областях.}}
{{CLParam|-fastambient|Использовать грубую выборку образцов рассеянного освещения для экономии времени вычисления.}}
{{IO|-compressconstant|param=int|Сжать [[lightmap|карты освещения]], цветовая вариация которых меньше, чем данное значение.}}
{{CLParam|-noao|Отключить компиляцию имитации прикрытия рассеяного света для карты освещения.|game={{only|{{Nwi_games}}}}}}
{{IO|-fastambient|Использовать низкое качество выборки для каждого листа, чтобы сэкономить время вычисления.}}
{{CLParam|-StaticPropSampleScale|param=int|Регулирует освещение, сгенерированное для каждой вершины объекта {{L|prop_static}}.
{{IO|-noao|Отключить компиляцию смоделированной окклюзии для карты освещения.|only=Ins}}
{{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|Параметр <code>-final</code> эквивалентен значению <code>16</code> параметра <code>-StaticPropLightingScale</code>.}}|game={{only|{{csgo}}}}}}
}}
}}


=== Режим отладки===


{{ColumnBox|count=2|
===Отладка===
{{IO|-rederrors|подсвечивает [[luxel|люксели]] без сэмплов}}
{{ColumnBox|count=2|{{CLParam|-rederrors|выделяет красным цветом {{L|luxel|люксели}} без сэмплов}}
{{IO|-vproject <directory>}}
{{CLParam|-vproject <directory>}}
{{IO|-game <directory>|Указать путь к VPROJECT (Game Info).}}
{{CLParam|-game <directory>|Переопределяет переменную среды {{L|Game_directory|VPROJECT}}.}}
{{IO|-insert_search_path <directory>|{{Todo|Что это такое?}}}}
{{CLParam|-insert_search_path <directory>|Добавляет путь к директории для поиска дополнительного содержимого (как записи в [[Gameinfo.txt]]). Полезно, если по какой-либо причине необходимо хранить некоторые ресурсы отдельно от основной модификации.}}
{{IO|-v}}
{{CLParam|-v}}
{{IO|-verbose|Включить подробный отчёт-вывод.}}
{{CLParam|-verbose|Включает вывод подробного отчёта.}}
{{IO|-novconfig|Не запускать игру при наличии ошибок с Vconfig (при проблемах с поиском контента игры.}}
{{CLParam|-novconfig|Не запускать игру при наличии ошибок с Vconfig (при проблемах с поиском контента игры.}}
{{IO|-dump|Сброс патчей для отладки файлов.}}
{{CLParam|-dump|Выводит патчи в отладочные файлы.}}
{{IO|-dumpnormals|Записывать нормали в файл дампа .txt.}}
{{CLParam|-dumpnormals|Записывать нормали в отладочные .txt файлы.}}
{{IO|-debugextra|Помещает данные отладки в карты освещения для визуализации суперсэмплинга.}}
{{CLParam|-debugextra|Помещает данные отладки в карты освещения для визуализации суперсэмплинга.}}
{{IO|-dlightmap|Превращает направленное освещение в разнонаправленные лайтпамы.}}
{{CLParam|-dlightmap|Принудительно использовать разнонаправленные карты освещения вместо прямого освещения.}}
{{IO|-stoponexit|Ждать нажатия кнопки, для выхода (закрытия окна).}}
{{CLParam|-stoponexit|Ожидать нажатия кнопки, для выхода (закрытия окна).}}
{{IO|-nodetaillight|Не освещать дитейл пропы (или func_details?).}}
{{CLParam|-nodetaillight|Не освещать объекты элементы-детали (или func_details?).}}
{{IO|-centersamples|Переместить сэмплы в центр.}}
{{CLParam|-centersamples|Переместить сэмплы в центр.}}
{{IO|-loghash| Записать хэш таблицы в samplehash.txt.}}
{{CLParam|-loghash|Записать хэш таблицы в samplehash.txt.}}
{{IO|-onlydetail|Освещать только детейл пропы и per-leaf.}}
{{CLParam|-onlydetail|Освещать только малкие реквизит-объекты и per-leaf освещение.}}
{{IO|-maxdispsamplesize|param=int| Установить максмальный размер сэмплов для дисплейсментов (по умолчанию: <code>512</code>).}}
{{CLParam|-maxdispsamplesize|param=int|Установить максимальный размер сэмплов для деформированных поверхностей (по умолчанию: <code>512</code>).}}
{{IO|-FullMinidump|Написать большой минидамп при ошибке.}}
{{CLParam|-FullMinidump|Записывает полные кадры памяти при сбое компиляции.}}
{{IO|-OnlyStaticProps|Выполнять только прямое освещение prop static (или же простое освещение?).}}
{{CLParam|-OnlyStaticProps|Выполнять освещение {{L|prop_static|реквизит-объектов (prop_static)}} только от источников света.}}
{{IO|-StaticPropNormals|Когда освещаются static props, просто отображать направление нормалей.}}
{{CLParam|-StaticPropNormals|В случае освещения реквизит-объектов, просто отображать направление нормалей.}}
{{IO|-noskyboxrecurse|Отключить рекурсию для 3d skybox (тени скайбокса на карту).}}
{{CLParam|-noskyboxrecurse|Отключить рекурсию в объёмное небо (тени из короба неба в мире).}}
{{IO|-nossprops|Отключить все произвольные тени для static props (когда существует тень от бочки, даже карте без освещения.}}
{{CLParam|-nossprops|Полностью отключить самозатенение статичных реквизит-объектов (когда существует тень от бочки, даже на карте без освещения).}}
{{IO|-dumppropmaps|Сдампить (слить) вычисленные карты освещения. |only=2013MP}}
{{CLParam|-dumppropmaps|Вывести вычисленные карты освещения статичных реквизит-объектов в виде [[TGA]] файлов.|game={{only|{{src13mp}}}}}}
}}
}}


==Файлы статического освещения==
===Параметры режима отладки===
 
If VRAD is compiled in debug mode or the <code>#if ALLOWDEBUGOPTIONS</code> preprocessor is removed, additional options are available.
Файл освещения представляет собой обычный TXT документ [[Vrad|VRAD]], который вы можете править. Он указывает какие [[material|материалы]] могут излучать статическое освещение. Ваши <code>.rad</code> файлы должны находиться в той же папке, где и [[gameinfo.txt]].
{{CLParam|-scale|param=float|Scale lighting by this value.}}
 
{{CLParam|-ambient|param=color1|Apply a minimum ambient lighting value to the map.}}
Также:
{{CLParam|-sky|param=float|{{clarify}}}}
 
{{CLParam|-notexscale|param=|{{clarify}}}}
#'''<code>lights.rad</code>''', является глобальным файлом (используется всеми картами).
{{CLParam|-coring|param=float|Luxels with values dimmer than this are treated as completely black, and don't get supersampled.}}
#'''Для автозагрузки файла освещения''', нужно использовать <code><имя карты>.rad</code>. файл должен быть расположен там же, где и <code><имя карты>.vmf</code>.
#'''Любое количество файлов освещения''' могут быть добавлены в карту, если использовать [[#Effects|the <code>-lights</code>параметр ]].
 
=== Правила-Условия ===
 
Чтобы файлы освещения работали правильно, на каждую отдельную текстуру должна идти отдельная строка по следующему шаблону:
 
;<code><material> <red> <green> <blue> <intensity> <hdr_red> <hdr_green> <hdr_blue> <hdr_intensity></code>
:Материал должен покрывать грани обычных [[brush|брашей]] (<code>hdr_</code> значение не обязательно). Размер текстуры в хаммере напрямую влияет на степень яркости.
 
:{{Note|На самом деле не текстура излучает свет, это делает обычный {{ent|light}} энтити, [https://developer.valvesoftware.com/w/images/8/8e/Lightsrad_light_generation.png который расставляется движком на расстоянии каждые 4 [[luxel|люкселя]]]. Иногда быстрее и разумней будет сделать это вручную в хаммере.}}
:{{note|Текстуры, которые не лежат в папке Light, а находятся просто в materials, должны иметь перед своим именем слеш /ИМЯ_ТЕКСТУРЫ.}}
{{warning| [[func_detail]] на которых будут нанесены текстуры излучающие свет, возможно не обработаются VRAD.}}
;<code>noshadow <имя текстуры></code>
:Запрещает данной текстуре отбрасывать тень.
;<code>forcetextureshadow <путь к модели>.mdl</code>
:Включает тестирование полупрозрачной тени для модели, когда VRAD запускается с <code>[[#Effects|-TextureShadows]]</code>. нужно указать папку расположения модели.
;<code><nowiki>ldr:</nowiki></code>
;<code><nowiki>hdr:</nowiki></code>
:Префиксы для выполнения в режиме LDR или HDR.
;<code><nowiki>hdr:ldr:</nowiki></code>
:Строки, начинающиеся с обоих тегов (в таком порядке), всегда будут игнорироваться VRAD. Может использоваться для добавления комментариев или быстрого отключения некоторых параметров.


==Обратите внимание также на ==
==Файлы статичного освещения==
* [[Map Compiling Theory]]
{{main|Ru/RAD file}}
* [[HDR Lighting Basics]]
* [[VRAD HDR Crash Fix]]
* [[Static Props show up black]]


==Смотреть также==
* [[QRAD]] and [[HLRAD]] - {{gldsrc|4}} counterparts.
* [[VRAD_(Source 2)|VRAD2 & VRAD3]] - {{source2|4}} counterparts.
* {{L|Map Compiling Theory|Теория компиляции карт}}
* {{L|HDR Lighting Basics|Основы освещения HDR}}
* {{L|VRAD HDR Crash Fix}}
* {{L|Static Props show up black}}
{{SDKTools}}
{{SDKTools}}


[[Category:Level Design]]
{{ACategory|Official Source Tools}}
[[Category:Glossary]]
{{ACategory|Source 1 BSP compilers}}

Latest revision as of 10:57, 3 July 2025

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)

VBSPVVISVRADBSPZIP

VRAD VRAD — это инструмент командной строки(en), который использует имеющийся BSP-файл и добавляет в него данные об освещении. Статичное и заготовленное освещение распостраняется VRAD на весь мир карты посредством алгоритма излучения света.

Что делает VRAD:

VRAD является самым долгим из компиляторов, из-за прогрессирующего количества операций расчёта. Оптимизация освещения(en) может помочь ускорить процесс, если на карте нет утечек(en).

Tip.pngСовет:Если процесс компиляции словно завис на «8...9...» не переживайте, дело в том, что на каждую последующую итерацию расчёта карты освещения тратится всё больше времени.
Warning.pngПредупреждение:VRAD сильно использует ресурсы процессора во время компиляции!
Icon-Bug.pngБаг:Если в Half-Life 2: Episode One Half-Life 2: Episode One или Left 4 Dead Left 4 Dead во время компиляции освещения в HDR(en) происходит сбой, прочтите это(en).
Icon-Bug.pngБаг:В серии игр Left 4 Dead Left 4 Dead, «.mdl» модели, которые не имеют «.dx80.vtx» будут проигнорированы компилятором VRAD. Скопируйте «.dx90.vtx» файл и переименуйте его в «.dx80.vtx» чтобы исправить это.
Имеется бат-файл, который будет делать это автоматически: Скачать (разместите файл в папке с моделью и запустите бат-файл.)
Icon-Bug.pngБаг:К тому же, «.mdl» файлы, имеющие заголовок «IDST1» не будут обработаны для VBSP(en), и выдадут сообщение об ошибке, говорящее что модель не удалось загрузить. Это можно исправить, изменив заголовок на «IDST0» в HEX редакторе или перекомпилировав модель не в «Left 4 Dead Left 4 Dead Studiomdl(en)», таком как Source 2013 Source 2013. Можно так же использовать программу Crowbar(en).
Icon-Bug.pngБаг:Уже как минимум 5–10 лет по состоянию на октябрь 2017 года, все известные вариации VRAD компилятора имеют проблему с многоядерными процессорами, вследствие чего нагрузка на процессоре может достигать до 100%, а по факту будет нагружено не более нескольких ядер. Это ощутимо заметно в режиме компиляции «-final» (несмотря на то, что показано 100% использование процессора). Исправление этого бага для Source 2013 Source 2013 доступно здесь, а отредактированные DLL библиотеки доступны здесь. Valve также выпустила патч для VRAD Counter-Strike: Global Offensive Counter-Strike: Global Offensive, который исправляет эту проблему.
Icon-Bug.pngБаг:Иногда на картах освещения могут быть слишком чёрные тени и грубые переходы от света к темноте.
Tip.pngСовет:С помощью Source Engine BSP Lightmap Editor можно вручную редактировать уже запечённую карту освещения у готового «.bsp» файла.

Синтаксис

vrad [options...] <bsp file>

Пример:

"Half-Life 2\bin\vrad.exe" -both -StaticPropLighting sdk_trainstation_01

Это сгенерирует и встроит в файл карты как стандартное освещение, так и данные для широкого диапазона яркости(en) с детализацией по каждой вершине для prop_static(en).

Параметры

Используйте эти комбинации в режиме эксперта(en) или в bat-файле.

Эффекты

-ldr
Компилировать освещение в малом диапазоне яркости.
Warning.pngПредупреждение:Insurgency и Counter-Strike: Global Offensive не поддерживают LDR. Для правильного освещения используйте -both или -hdr
-hdr
Компилировать освещение с Широким Динамическим Диапазоном(en) яркости.
-both
Компилировать освещение как в LDR, так и в HDR.
-fast
Компиляция освещения низкого качества. Используются для быстрого предпросмотра карты.
Note.pngПримечание:-fast приведёт к появлению случайных неправильно окрашенных пятен в тёмных областях карты.
Не используйте эту опцию для исправления проблем с освещением.
-final
Улучшает качество light_environment и непрямого света, затрачивая больше времени на лучи.
-extrasky <целое число(en)>
Прослеживает в N раз больше лучшей для непрямого освещения и неба.
(-final то же самое, что и -extrasky 16; normal соответствует -extrasky 1)
-lights <filename>.rad
Загружает пользовательский файл освещения в дополнение к lights.rad и файлу освещения непосредственно для этой карты. В этом параметре необходимо указывать расширение файла.
-bounce <целое число(en)>
Устанавливает максимальное количество отражений лучей света. (по умолчанию: 100).
-smooth <целое число(en)>
Устанавливает порог для групп сглаживания(en), в градусах (по умолчанию: 45).
-luxeldensity <normal(en)>
Уменьшает масштаб всех люкселей(en). По умолчанию (максимальное значение) 1.
Warning.pngПредупреждение:Устновка слишком малого значения может привести к дефектам освещения.
-softsun <число с плавающей запятой(en)>
Рассматривает солнце как объёмный источник рассеянного света. Создаёт мягкие тени. Рекомендуемые значения 0–5, по умолчанию 0. Идентично параметру SunSpreadAngle для light_environment, Используйте его вместо этого.
-StaticPropLighting  (Во всех играх начиная с Half-Life 2: Episode Two)
Рассчитывает освещение по вершинам на объектах prop_static(en); всегда включено для объекта light_spot. Не учитывает точку освещения(en) для расчёта освещения объектов без карт рельефа на текстуре(en) или $phong(en) . Не работает на prop_static(en) с картами рельефа на текстуре во всех играх, кроме Counter-Strike: Global Offensive.
Warning.pngПредупреждение:Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для объектов, которым это не требуется, чтобы сохранить наименьшй размер файла.
Note.pngПримечание:Чтобы в Counter-Strike: Global Offensive получить правильное освещение на статичных реквизит-объектах, нужно запустить VRAD с этим параметром.
-StaticPropPolys  (Во всех играх начиная с Half-Life 2: Episode Two)
Использовать для создания теней непосредственно модели prop_static(en) вместо их габаритов столкновений(en) для получения более точного отображения теней.
-TextureShadows  (Во всех играх начиная с Half-Life 2: Episode Two)
Генерировать тени карты освещения из $translucent поверхностей моделей (НЕ брашей), которые указаны в файле освещения и используются с prop_static(en). Обычно требуют включенного параметра -StaticPropPolys.
Note.pngПримечание:Поверхность требует низкомасштабной карты освещения(en), чтобы большинство текстур теней были узнаваемыми.
Note.pngПримечание:По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.
-aoscale <число с плавающей запятой(en)> (Во всех играх начиная с Counter-Strike: Global Offensive)
Определяет масштаб интенсивности имитации VRAD прикрытия рассеяного света. По умолчанию 1.0.
Tip.pngСовет:Valve используют 1.5 для новой Dust 2.
-aoscale - Примеры
-aoradius <число с плавающей запятой(en)> (только в Insurgency)
Устанавливает радиус для имитации VRAD прикрытия рассеяного света.
Нужно сделать: Узнать, как именно.
-aosamples <целое число(en)> (только в Insurgency)
Как много образцов использовать VRAD для имитации прикрытия рассеяного света.
-StaticPropBounce <целое число(en)> (только в Counter-Strike: Global Offensive)
Число отражений света на статичных реквизит-объектах для симуляции. По умолчанию 0.
Tip.pngСовет:Valve используют 3 отражения на статичных реквизит-объектов в новом Dust 2.
Note.pngПримечание:У любого статичного реквизит-объекта можно отключить световые отражения через ключ "Enable Bounced Lighting".
-StaticPropLightingFinal  (только в Counter-Strike: Global Offensive)
Компилирует освещение более высокого качества для статичных реквизит-объектов.
-StaticPropLightingOld  (только в Counter-Strike: Global Offensive)
Использовать старый алгоритм освещения для реквизит-объектов, на них свет влияет сильнее всего.
-choptexlights  (только в Black Mesa)
Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.
-extratransfers  (только в Black Mesa)
Включить масштабирование передачи света.
-transferscale <число с плавающей запятой(en)> (только в Black Mesa)
Масштабный коэффициент передачи света. Увеличенные значения заставляют поверхности передавать больше света (предлагается масштаб 2–4). По умолчанию 1.0.
-satthresh <число с плавающей запятой(en)> (только в Black Mesa)
Порог, определяющий насыщенность цвета материала. Используется вместе с -satthreshscale. По умолчанию 0.4.
-satthreshscale <число с плавающей запятой(en)> (только в Black Mesa)
Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.

Производительность

-low
Запуск компилятора как процесса с низким приоритетом.
-threads <целое число(en)>
Указать количество задействованных процессоров/ядер, максимум 16. Используя патч vrad_dll(en) вы можете расширить предел до 32.
-mpi
Использовать VMPI(en) для распределения вычислений (не актуально).
-mpi_pw <строка(en)>
Использовать пароль для определённых VMPI шаблонов-режимов.
-noextra
Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.
-chop <целое число(en)>
Наименьшее число ширины люкселей(en) для патчей отражения, используемых на краях. (По умолчанию: 4)
-maxchop <целое число(en)>
Самое грубое допустимое число ширины люкселей(en) в патче, используемое на поверхностях интерьера. (По умолчанию: 4)
-dispchop <целое число(en)>
Наименьшая приемлемая ширина люкселей(en) в поверхностях патча дисплейсментов. (По умолчанию: 8)
-LargeDispSampleRadius
Это можно использовать, если на поверхности есть пятна отражённого света. Компиляция займёт больше времени, но она соберёт свет в более обширных областях.
-compressconstant <целое число(en)>
Сжать карты освещения(en), цветовая вариация которых меньше, чем данное значение.
-fastambient
Использовать грубую выборку образцов рассеянного освещения для экономии времени вычисления.
-noao  (только в Insurgency Day of Infamy)
Отключить компиляцию имитации прикрытия рассеяного света для карты освещения.
-StaticPropSampleScale <целое число(en)> (только в Counter-Strike: Global Offensive)
Регулирует освещение, сгенерированное для каждой вершины объекта prop_static(en).
медленно: 16 (высокое качество); по умолчанию: 4 (нормальное качество); быстро: 0.25 (низкое качество)
Note.pngПримечание:Параметр -final эквивалентен значению 16 параметра -StaticPropLightingScale.


Отладка

-rederrors
выделяет красным цветом люксели(en) без сэмплов
-vproject <directory>
-game <directory>
Переопределяет переменную среды VPROJECT(en).
-insert_search_path <directory>
Добавляет путь к директории для поиска дополнительного содержимого (как записи в Gameinfo.txt). Полезно, если по какой-либо причине необходимо хранить некоторые ресурсы отдельно от основной модификации.
-v
-verbose
Включает вывод подробного отчёта.
-novconfig
Не запускать игру при наличии ошибок с Vconfig (при проблемах с поиском контента игры.
-dump
Выводит патчи в отладочные файлы.
-dumpnormals
Записывать нормали в отладочные .txt файлы.
-debugextra
Помещает данные отладки в карты освещения для визуализации суперсэмплинга.
-dlightmap
Принудительно использовать разнонаправленные карты освещения вместо прямого освещения.
-stoponexit
Ожидать нажатия кнопки, для выхода (закрытия окна).
-nodetaillight
Не освещать объекты элементы-детали (или func_details?).
-centersamples
Переместить сэмплы в центр.
-loghash
Записать хэш таблицы в samplehash.txt.
-onlydetail
Освещать только малкие реквизит-объекты и per-leaf освещение.
-maxdispsamplesize <целое число(en)>
Установить максимальный размер сэмплов для деформированных поверхностей (по умолчанию: 512).
-FullMinidump
Записывает полные кадры памяти при сбое компиляции.
-OnlyStaticProps
Выполнять освещение реквизит-объектов (prop_static)(en) только от источников света.
-StaticPropNormals
В случае освещения реквизит-объектов, просто отображать направление нормалей.
-noskyboxrecurse
Отключить рекурсию в объёмное небо (тени из короба неба в мире).
-nossprops
Полностью отключить самозатенение статичных реквизит-объектов (когда существует тень от бочки, даже на карте без освещения).
-dumppropmaps  (только в Source 2013 Multiplayer)
Вывести вычисленные карты освещения статичных реквизит-объектов в виде TGA файлов.

Параметры режима отладки

If VRAD is compiled in debug mode or the #if ALLOWDEBUGOPTIONS preprocessor is removed, additional options are available.

-scale <число с плавающей запятой(en)>
Scale lighting by this value.
-ambient <цвет КЗС(en) 0-1>
Apply a minimum ambient lighting value to the map.
-sky <число с плавающей запятой(en)>
[Уточнить]
-notexscale
[Уточнить]
-coring <число с плавающей запятой(en)>
Luxels with values dimmer than this are treated as completely black, and don't get supersampled.

Файлы статичного освещения

Основная статья:  Ru/RAD file

Смотреть также