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

Ru/VRAD: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
(Update translate.)
 
(49 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar|title=Компилятор освещения VRAD}}
|en = Vvis
{{src topicon}}
}}
{{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 редакторе или перекомпилировав модель в приложении [[Studiomdl]] или в чем-нибудь получше, подходящем для Source 2013 (Crowbar например).}}
{{bug|Уже как минимум 5-10 лет по состоянию на октябрь 2017 года, все известные вариации VRAD компилятора имеют проблему с многоядерными процессорами, вследствие чего нагрузка на процессоре может достигать до 100%, а по факту будет нагружено не более нескольких ядер. Это ощутимо заметно в режиме полной компиляции  -final  (когда процессор задыхается в 100%). Исправление этого бага для Source 2013 доступно [https://github.com/ValveSoftware/source-sdk-2013/pull/436 here|здесь], а отредактированные библиотеки 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] с его помощью можно вручную редактировать УЖЕ ЗАПЕЧЕННЫЙ  лайтмап у готовой BSP..}}


== Синтакс ==
{{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 34: 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| режиме эксперта]] или в gfrtnyjv файле.
Используйте эти комбинации в {{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|Прослеживает в N раз больше лучшей для непрямого освещения и неба. {{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|Устанавливает максимальное число лучей света. (по умолчанию: 100).}}
{{CLParam|-softsun|param=float|Рассматривает солнце как объёмный источник рассеянного света. Создаёт мягкие тени. Рекомендуемые значения <code>0–5</code>, по умолчанию <code>0</code>. Идентично параметру <code>SunSpreadAngle</code> для <code>light_environment</code>, Используйте его вместо этого.}}
{{IO|-smooth|param=int|Устанавливает порог для [[smoothing group|групп сглаживания]], в градусах (по умолчанию: 45).}}
{{CLParam|-StaticPropLighting|Рассчитывает освещение по вершинам на объектах {{L|prop_static}}; всегда включено для объекта {{ent|light_spot}}. Не учитывает {{L|info_lighting|точку освещения}} для расчёта освещения объектов без {{L|bump maps|карт рельефа на текстуре}} или {{L|$phong}} . Не работает на {{L|prop_static}} с картами рельефа на текстуре во всех играх, кроме {{csgo}}.
{{IO|-luxeldensity|param=normal|Уменьшает масштаб всех люкселей. По умолчанию (максимальное значение) 1.}}
: {{warning|Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для объектов, которым это не требуется, чтобы сохранить наименьшй размер файла.}}
{{IO|-softsun|param=float|Рассматривает солнце как источник освещения в этой степени. Создает мягкие тени. Рекомендуемые значения 0-5, по умолчанию is 0. Идентично параметру SunSpreadAngle для <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|мешей столкновения]]. Это ведет к более точному созданию теней shadowing.|since=EP2}}
: {{note|По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.}}|game={{since|{{Ep2}}}}}}
{{IO|-TextureShadows|Генерировать тени карты освещения из {{ent|$translucent}} поверхностей моделей (НЕ брашей), которые указаны в [[#Lights_files|файле освещения]] и используются с <code>prop_static</code>. Обычно требуют включенного параметра <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. По умолчанию 1.0 .
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|Число симуляции световых отражений статических пропов. По умолчанию 0.
{{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|Масштабный коэффициент передачи света. Увеличанные значения заставляют поверхности передавать больше света (предлагается масштаб 2-4). По умолчанию 1.0.|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|Указать количество задействованных ядер цпу, макс 16. Используя [[Increased_Thread_Limit_for_Compile_Tools|патч vrad_dll]] вы можете расширить до 32 .}}
{{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|люкселей ]] для патчей отражения, используемых на краях. (По умолчанию: 4)}}
{{CLParam|-dispchop|param=int|Наименьшая приемлемая ширина {{L|luxel|люкселей}} в поверхностях патча дисплейсментов. (По умолчанию: <code>8</code>)}}
{{IO|-maxchop|param=int|Самое грубое допустимое число ширины люкселей в патче, используемое на поверхностях интерьера. (По умолчанию: 4)}}
{{CLParam|-LargeDispSampleRadius|Это можно использовать, если на поверхности есть пятна отражённого света. Компиляция займёт больше времени, но она соберёт свет в более обширных областях.}}
{{IO|-dispchop|param=int|Наименьшая приемлемая ширина [[luxel|люкселей]] в поверхностях патча дисплейсментов. (По умолчанию: 8)}}
{{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}}
: медленно: 16 (высокое качество); по умолчанию: <code>4</code> (нормальное качество); быстро: <code>0.25</code> (низкое качество)
{{IO|-StaticPropSampleScale|param=int|Регулирует освещение, сгенерированное для каждой вершины проп статик.  
: {{note|Параметр <code>-final</code> эквивалентен значению <code>16</code> параметра <code>-StaticPropLightingScale</code>.}}|game={{only|{{csgo}}}}}}
: медленно: 16 (высокое качество); по умолчанию: 4 (нормальное качество); быстро: 0.25 (низкое качество)
: {{note|параметр -final эквивалентен значению 16 параметра -StaticPropLightingScale.}}|only=CSGO}}
}}
}}


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


{{ColumnBox|count=2|
===Отладка===
{{IO|-rederrors|подсвечивает люксели без сэмплов}}
{{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| Установить максмальный размер сэмплов для дисплейсментов (по умолчанию: 512).}}
{{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|материалы]] могут излучать статическое освещение. Ваши .rad файлы должны лежать в той же папке, где и  [[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><ПАПКА lights/Имя текстурыl> <красный> <зеленый> <синий> <яркость> <hdr_красный> <hdr_зеленый> <hdr_синий> <hdr_яркость></code>
:Материал должен покрывать грани обычных [[brush|брашей]] (<code>hdr_</code> значение не обязательно) Размер текстуры в хаммере  напрямую влияет на степень яркости.
 
:{{Note|На самом деле не текстура излучает свет, это делает обычный {{ent|light}} энтити, [https://developer.valvesoftware.com/w/images/8/8e/Lightsrad_light_generation.png  который расставляется движком на расстоянии каждые 4 люкселя (пикселя)]. Иногда быстрее и разумней будет сделать это вручную в хаммере.}}
:{{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

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