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

Ru/VRAD: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
(Update translate.)
 
(56 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar|title=Компилятор освещения VRAD}}
|title=VRAD
{{src topicon}}
|zh-cn = Vrad:zh-cn
{{map compile pipeline|source1}}
|en = VRAD}}
 
{{toc-right}}
{{toc-right}}


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


'''VRAD''' - это [[command-line|инструмент командной строки]], который берет скомпилированную BSP карту и встраивает в неё данные освещения. Он генерирует статическое и прекомпилированное освещение используя алгоритм [[Wikipedia:Radiosity (3D computer graphics)|radiosity]].
* Рассчитывает {{L|lightmap|карты освещения}};
* Рассчитывает освещение {{L|Ambient light|рассеяным светом}};
* Рассчитывает освещение по вершинам геометрии, например для {{L|prop_static|реквизит-объектов (prop_static)}};
* Рассчитывает освещение для объектов целиком, например для {{L|detail props|мелких реквизит-объектов (detail props)}}.


Что делает VRAD:
VRAD является самым долгим из компиляторов, из-за прогрессирующего количества операций расчёта. {{L|Lighting optimization|Оптимизация освещения}} может помочь ускорить процесс, если на карте нет {{L|Leak|утечек}}.


* Сгенерирует [[lightmap|карты освещения]]
{{tip|Если процесс компиляции словно завис на <code>«8...9...»</code> не переживайте, дело в том, что на каждую последующую итерацию расчёта карты освещения тратится всё больше времени.}}
* Сгенерирует [[Ambient light|окружающее освещение]]
{{warning|VRAD сильно использует ресурсы процессора во время компиляции!}}
* Сгенерирует по-объектное или по-вершинное [[prop_static]] и [[detail prop]] освещение


VRAD это, скорее всего, самый медленный из трех компиляторов, так как он производит огромное количество вычислений. [[Lighting optimization|Оптимизация освещения]] может помочь также как и проверка карты на отсутствие [[leak:ru|утечек]].
{{bug|hidetested=1|Если в {{ep1|4}} или {{Left 4 Dead|4}} во время компиляции освещения в {{L|HDR}} происходит сбой, прочтите {{L|VRAD HDR Crash Fix|это}}.}}


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


{{bug:ru|В ветке не-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 Скачать] (разместите файл в папке с моделью и запустите бат-файл.)
{{bug:ru|Additionally, <code>.mdl</code> files that have the <code>IDST1</code> header will fail to load for [[VBSP]], and will give a error message stating the prop failed to load; this can be fixed by changing the header to <code>IDST0</code> in a Hex Editor, or by recompiling the prop in a non-L4D branch [[Studiomdl]] application such as Source 2013.}}
{{bug:ru|As of around 5-10 years ago up until at least October, 2017 all known copies of VRAD have a thread sharing bug which causes performance to scale poorly to multiple threads, particularly on outdoor scenes with -final set (despite showing 100% CPU usage). The fix to this bug for Source 2013 is available [https://github.com/ValveSoftware/source-sdk-2013/pull/436 here] and edited DLLs are available [http://www.content.tophattwaffle.com/Content/modded_vrad_dll.zip here]. Valve also released a patch for CSGO's VRAD that fixes this issue.}}


== Синтаксис ==
{{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>


Например:
Пример:


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


Это сгенерирует и встроит стандартное и [[HDR]] освещение для каждого вертекса статичных пропов.
Это сгенерирует и встроит в файл карты как стандартное освещение, так и данные для {{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|Широким Динамическим Диапазоном}} яркости.}}
; <code>-ldr</code>
{{CLParam|-both|Компилировать освещение как в LDR, так и в HDR.}}
; <code>-hdr</code>
{{CLParam|-fast|Компиляция освещения низкого качества. Используются для быстрого предпросмотра карты.
; <code>-both</code>
: {{note|{{MdCode|outline|-fast}} приведёт к появлению случайных неправильно окрашенных пятен в тёмных областях карты. <br>Не используйте эту опцию для исправления проблем с освещением.}}}}
: Whether to compile standard or [[HDR|High Dynamic Range]] lighting, or both.
{{CLParam|-final|Улучшает качество {{ent|light_environment}} и непрямого света, затрачивая больше времени на лучи.}}
: {{note|In {{insurgency}}{{csgo}}, you need to compile with -hdr in order have proper lighting since LDR isn't supported.}}
{{CLParam|-extrasky|param=int|Прослеживает в <code>N</code> раз больше лучшей для непрямого освещения и неба. {{clr}}(<code>-final</code> то же самое, что и <code>-extrasky 16</code>; normal соответствует <code>-extrasky 1</code>)}}
;<code>-fast</code>
{{CLParam|-lights <filename>.rad|Загружает пользовательский [[#Lights_files|файл освещения]] в дополнение к <code>lights.rad</code> и файлу освещения непосредственно для этой карты. В этом параметре необходимо указывать расширение файла.}}
: Quick and dirty lighting. Don't ship with this.
{{CLParam|-bounce|param=int|Устанавливает максимальное количество отражений лучей света. (по умолчанию: <code>100</code>).}}
;<code>-final</code>
{{CLParam|-smooth|param=int|Устанавливает порог для {{L|smoothing group|групп сглаживания}}, в градусах (по умолчанию: <code>45</code>).}}
: Increases the quality of [[light_environment]] and indirect lighting by spending more time firing rays.
{{CLParam|-luxeldensity|param=normal|Уменьшает масштаб всех {{L|luxel|люкселей}}. По умолчанию (максимальное значение) <code>1</code>.}} {{warning|Устновка слишком малого значения может привести к дефектам освещения.}}}}
;<code>-extrasky <[[int]]></code>
{{CLParam|-softsun|param=float|Рассматривает солнце как объёмный источник рассеянного света. Создаёт мягкие тени. Рекомендуемые значения <code>0–5</code>, по умолчанию <code>0</code>. Идентично параметру <code>SunSpreadAngle</code> для <code>light_environment</code>, Используйте его вместо этого.}}
: Trace N times as many rays for indirect light and sky ambient. {{clr}}(-final is equivalent to -extrasky 16; normal is equivalent to -extrasky 1)
{{CLParam|-StaticPropLighting|Рассчитывает освещение по вершинам на объектах {{L|prop_static}}; всегда включено для объекта {{ent|light_spot}}. Не учитывает {{L|info_lighting|точку освещения}} для расчёта освещения объектов без {{L|bump maps|карт рельефа на текстуре}} или {{L|$phong}} . Не работает на {{L|prop_static}} с картами рельефа на текстуре во всех играх, кроме {{csgo}}.
;<code>-lights <filename>.rad</code>
: {{warning|Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для объектов, которым это не требуется, чтобы сохранить наименьшй размер файла.}}
:Load a custom [[#Lights_files|lights file]] in addition to <code>lights.rad</code> and map-specific lights file. Include the file extension in the parameter.
: {{note|Чтобы в {{csgo}} получить правильное освещение на статичных реквизит-объектах, нужно запустить VRAD с этим параметром.}}|game={{since|{{Ep2}}}}}}
;<code>-bounce <[[int]]></code>
{{CLParam|-StaticPropPolys|Использовать для создания теней непосредственно модели {{L|prop_static}} вместо их {{L|collision mesh|габаритов столкновений}} для получения более точного отображения теней.|game={{since|{{Ep2}}}}}}
: Set the maximum number of light ray bounces (default: 100).
{{CLParam|-TextureShadows|Генерировать тени карты освещения из {{ent|$translucent}} поверхностей моделей (НЕ брашей), которые указаны в [[#Lights_files|файле освещения]] и используются с {{L|prop_static}}. Обычно требуют включенного параметра <code>-StaticPropPolys</code>.
;<code>-smooth <[[int]]></code>
: {{note|Поверхность требует низкомасштабной {{L|lightmap|карты освещения}}, чтобы большинство текстур теней были узнаваемыми.}}
:Set the threshold for [[smoothing group]]s, in degrees (default: 45).
: {{note|По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.}}|game={{since|{{Ep2}}}}}}
;<code>-luxeldensity <[[normal]]></code>
{{CLParam|-aoscale|param=float|Определяет масштаб интенсивности имитации VRAD прикрытия рассеяного света. По умолчанию <code>1.0</code>.
:Scale down all luxels. Default (and maximum) value is 1.
: {{tip|Valve используют 1.5 для новой Dust 2.}}|game={{since|{{csgo}}}}}}
;<code>-softsun <[[float]]></code>
:{{expand|title=-aoscale - Примеры|<gallery mode=nolines widths=320px heights=192px>
:Treat the sun as an area light source of this many degrees. Produces soft shadows. Recommended values are 0-5, default is 0. Identical to the SunSpreadAngle parameter in [[light_environment]].
File:VRAD AO Scale 0.25.jpg|{{code|-aoscale}} set to {{code|0.25}}
;<code>-StaticPropLighting</code>
File:VRAD AO Scale 2.0.jpg|{{code|-aoscale}} set to {{code|2.0}}
:Generate per-vertex [[prop_static]] lighting; always enabled for [[light_spot]] entities. Disables [[info_lighting]] entities on props WITHOUT normal maps. Does not work on props with Phong Enabled, except in {{csgo}}.  
</gallery>
{{note|In {{csgo}}, in order to get proper lighting on your static props, you will need to run VRAD with this command.}}
}}
;{{EP2 add|<code>-StaticPropPolys</code>}}
{{CLParam|-aoradius|param=float|Устанавливает радиус для имитации VRAD прикрытия рассеяного света. {{todo|Узнать, как именно.}}|game={{only|{{Insurgency}}}}}}
:Perform shadow tests of <code>prop_static</code>s at polygon precision. Default is to use [[collision mesh]]es.
{{CLParam|-aosamples|param=int|Как много образцов использовать VRAD для имитации прикрытия рассеяного света.|game={{only|{{Insurgency}}}}}}
;{{EP2 add|<code>-TextureShadows</code>}}
{{CLParam|-StaticPropBounce|param=int|Число отражений света на статичных реквизит-объектах для симуляции. По умолчанию <code>0</code>.
:Generates lightmap shadows from [[$translucent]] surfaces of models (NOT brushes) that are specified in a [[#Lights_files|lights file]] and being used with [[prop_static]]. Usually requires <code>-StaticPropPolys</code> to have any effect.
: {{tip|Valve используют 3 отражения на статичных реквизит-объектов в новом Dust 2.}}
:{{note|A surface will need a low [[lightmap]] scale for most texture shadows to be recognisable.}}
: {{note|У любого статичного реквизит-объекта можно отключить световые отражения через ключ "Enable Bounced Lighting".}}|game={{only|{{csgo}}}}}}
;{{CSGO add|<code>-aoscale <[[float]]></code>}}
{{CLParam|-StaticPropLightingFinal|Компилирует освещение более высокого качества для статичных реквизит-объектов.|game={{only|{{csgo}}}}}}
:Scales the intensity of VRAD's simulated ambient occlusion. 1.0 is default.  
{{CLParam|-StaticPropLightingOld|Использовать старый алгоритм освещения для реквизит-объектов, на них свет влияет сильнее всего.|game={{only|{{csgo}}}}}}
:{{Tip|Valve uses 1.5 for the new Dust 2.}}
{{CLParam|-choptexlights|Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.|game={{only|{{BMS}}}}}}
;{{CSGO add|<code>-StaticPropBounce <[[int]]></code>}}
{{CLParam|-extratransfers|Включить масштабирование передачи света.|game={{only|{{BMS}}}}}}
:Number of static prop light bounces to simulate. The default is 0.
{{CLParam|-transferscale|param=float|Масштабный коэффициент передачи света. Увеличенные значения заставляют поверхности передавать больше света (предлагается масштаб <code>2–4</code>). По умолчанию <code>1.0</code>.|game={{only|{{BMS}}}}}}
:{{Tip|Valve uses 3 static prop bounces for the new Dust 2.}}
{{CLParam|-satthresh|param=float|Порог, определяющий насыщенность цвета материала. Используется вместе с <code>-satthreshscale</code>. По умолчанию 0.4.|game={{only|{{BMS}}}}}}
:{{Note|Any static props that you want light to bounce off of must also have their "Enable Bounced Lighting" keyvalue set.}}
{{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>.}}
;<code>-low</code>
{{CLParam|-mpi|Использовать {{L|Vmpi|VMPI}} для распределения вычислений (не актуально).}}
:Run as a low-priority process.
{{CLParam|-mpi_pw|param=string|Использовать пароль для определённых VMPI шаблонов-режимов.}}
;<code>-threads <[[int]]></code>
{{CLParam|-noextra|Отключить суперсэмплинг. Карта станет более яркой, а тени неточными.}}
:Override the number of CPU threads used. Maximum is 16 threads. With a [[Increased_Thread_Limit_for_Compile_Tools|patched vrad_dll]] you can use 32 threads.
{{CLParam|-chop|param=int| Наименьшее число ширины {{L|luxel|люкселей}} для патчей отражения, используемых на краях. (По умолчанию: <code>4</code>)}}
;<code>-mpi</code>
{{CLParam|-maxchop|param=int|Самое грубое допустимое число ширины {{L|luxel|люкселей}} в патче, используемое на поверхностях интерьера. (По умолчанию: <code>4</code>)}}
:Use [[Vmpi|VMPI]] to distribute computations.
{{CLParam|-dispchop|param=int|Наименьшая приемлемая ширина {{L|luxel|люкселей}} в поверхностях патча дисплейсментов. (По умолчанию: <code>8</code>)}}
;<code>-mpi_pw <[[string]]></code>
{{CLParam|-LargeDispSampleRadius|Это можно использовать, если на поверхности есть пятна отражённого света. Компиляция займёт больше времени, но она соберёт свет в более обширных областях.}}
:Use a password to choose a specific set of VMPI workers.
{{CLParam|-compressconstant|param=int|Сжать {{L|lightmap|карты освещения}}, цветовая вариация которых меньше, чем данное значение.}}
;<code>-noextra</code>
{{CLParam|-fastambient|Использовать грубую выборку образцов рассеянного освещения для экономии времени вычисления.}}
:Disable supersampling.
{{CLParam|-noao|Отключить компиляцию имитации прикрытия рассеяного света для карты освещения.|game={{only|{{Nwi_games}}}}}}
;<code>-chop <int></code>
{{CLParam|-StaticPropSampleScale|param=int|Регулирует освещение, сгенерированное для каждой вершины объекта {{L|prop_static}}.
:Smallest number of [[luxel]] widths for a bounce patch, used on edges.
: медленно: 16 (высокое качество); по умолчанию: <code>4</code> (нормальное качество); быстро: <code>0.25</code> (низкое качество)
;<code>-maxchop <int></code>
: {{note|Параметр <code>-final</code> эквивалентен значению <code>16</code> параметра <code>-StaticPropLightingScale</code>.}}|game={{only|{{csgo}}}}}}
:Coarsest allowed number of luxel widths for a patch, used in face interiors.
;<code>-LargeDispSampleRadius</code>
:This can be used if there are splotches of bounced light on terrain. The compile will take longer, but it will gather light across a wider area.
;<code>-compressconstant <int></code>
:Compress [[lightmap]]s whose color variation is less than this many units.
;<code>-fastambient <int></code>
:{{Todo|What is this?}}
;{{CSGO add|<code>-StaticPropSampleScale x</code>}}
:Regulates the generated per-vertex prop_static lighting.
:slow: 16 (high quality); default: 4 (normal); fast: 0.25 (low quality)
:{{note|-final is the equivalent of having -StaticPropLightingScale 16.}}
}}
}}


=== Отладка ===
{{ColumnBox|count=2|
;<code>-rederrors</code>
:Emit red light when "a luxel has no samples".
;<code>-vproject <directory></code>
;<code>-game <directory></code>
:Override the VPROJECT environment variable.
;<code>-insert_search_path <directory></code>
:{{Todo|What does this do?}}
;<code>-v</code>
;<code>-verbose</code>
: Turn on verbose output.
;<code>-novconfig</code>
:Don't bring up graphical UI on vproject errors.
;<code>-dump</code>
:Dump patches to debug files.
;<code>-dumpnormals</code>
:Write normals to debug .txt files.
;<code>-debugextra</code>
:Places debugging data in lightmaps to visualize supersampling.
;<code>-dlightmap</code>
:Force direct lighting into different lightmap than radiosity.
;<code>-stoponexit</code>
:Wait for a keypress on exit.
;<code>-nodetaillight</code>
:Don't light detail props.
;<code>-centersamples</code>
:Move sample centers.
;<code>-loghash</code>
:Log the sample hash table to samplehash.txt.
;<code>-onlydetail</code>
:Only light detail props and per-leaf lighting.
;<code>-maxdispsamplesize #</code>
:Set max displacement sample size (default: 512).
;<code>-FullMinidump</code>
:Write large minidumps on crash.
;<code>-OnlyStaticProps</code>
:Only perform direct static prop lighting.
;<code>-StaticPropNormals</code>
:When lighting static props, just show their normal vector.
;<code>-noskyboxrecurse</code>
:Turn off recursion into 3d skybox (skybox shadows on world).
;<code>-nossprops</code>
:Globally disable self-shadowing on static props.
;{{2013 add|<code>-dumppropmaps</code>}}
:Dump computed prop lightmaps.


===Отладка===
{{ColumnBox|count=2|{{CLParam|-rederrors|выделяет красным цветом {{L|luxel|люксели}} без сэмплов}}
{{CLParam|-vproject <directory>}}
{{CLParam|-game <directory>|Переопределяет переменную среды {{L|Game_directory|VPROJECT}}.}}
{{CLParam|-insert_search_path <directory>|Добавляет путь к директории для поиска дополнительного содержимого (как записи в [[Gameinfo.txt]]). Полезно, если по какой-либо причине необходимо хранить некоторые ресурсы отдельно от основной модификации.}}
{{CLParam|-v}}
{{CLParam|-verbose|Включает вывод подробного отчёта.}}
{{CLParam|-novconfig|Не запускать игру при наличии ошибок с Vconfig (при проблемах с поиском контента игры.}}
{{CLParam|-dump|Выводит патчи в отладочные файлы.}}
{{CLParam|-dumpnormals|Записывать нормали в отладочные .txt файлы.}}
{{CLParam|-debugextra|Помещает данные отладки в карты освещения для визуализации суперсэмплинга.}}
{{CLParam|-dlightmap|Принудительно использовать разнонаправленные карты освещения вместо прямого освещения.}}
{{CLParam|-stoponexit|Ожидать нажатия кнопки, для выхода (закрытия окна).}}
{{CLParam|-nodetaillight|Не освещать объекты элементы-детали (или func_details?).}}
{{CLParam|-centersamples|Переместить сэмплы в центр.}}
{{CLParam|-loghash|Записать хэш таблицы в samplehash.txt.}}
{{CLParam|-onlydetail|Освещать только малкие реквизит-объекты и per-leaf освещение.}}
{{CLParam|-maxdispsamplesize|param=int|Установить максимальный размер сэмплов для деформированных поверхностей (по умолчанию: <code>512</code>).}}
{{CLParam|-FullMinidump|Записывает полные кадры памяти при сбое компиляции.}}
{{CLParam|-OnlyStaticProps|Выполнять освещение {{L|prop_static|реквизит-объектов (prop_static)}} только от источников света.}}
{{CLParam|-StaticPropNormals|В случае освещения реквизит-объектов, просто отображать направление нормалей.}}
{{CLParam|-noskyboxrecurse|Отключить рекурсию в объёмное небо (тени из короба неба в мире).}}
{{CLParam|-nossprops|Полностью отключить самозатенение статичных реквизит-объектов (когда существует тень от бочки, даже на карте без освещения).}}
{{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.
A light file is a plain text file that can be used to manipulate the way [[Vrad|VRAD]] handles given [[material]]s when compiling static lighting. All lights files must have the .rad file extension and must be in the same folder as your [[gameinfo.txt]].
{{CLParam|-scale|param=float|Scale lighting by this value.}}
 
{{CLParam|-ambient|param=color1|Apply a minimum ambient lighting value to the map.}}
There are:
{{CLParam|-sky|param=float|{{clarify}}}}
 
{{CLParam|-notexscale|param=|{{clarify}}}}
#'''<code>lights.rad</code>''', the global file.
{{CLParam|-coring|param=float|Luxels with values dimmer than this are treated as completely black, and don't get supersampled.}}
#'''An auto-loaded map light file''', using the format <code><map name>.rad</code>. The file must be placed in the same folder as <code><map name>.vmf</code>.
#'''Any number of additional lights files''' that can be added with [[#Effects|the <code>-lights</code> parameter]].
 
=== Правила ===
 
Lights files perform these functions, one rule per line:
 
;<code><material> <red> <green> <blue> <intensity> <hdr_red> <hdr_green> <hdr_blue> <hdr_intensity></code>
:Makes the material emit the given light value when applied to a [[brush]] face (<code>hdr_</code> values are optional). Texture scale has an effect on final intensity. {{note|materials that aren't in a folder must have a slash before their name.}}
{{note|The material itself doesn't emit anything, it instead creates light entities on its face.}}
{{warning|A [[func_detail]] with an emissive material applied on any face will automatically cause VRAD to fail!}}
;<code>noshadow <material name></code>
:Prevents the named material from casting shadows.
;<code>forcetextureshadow <model path>.mdl</code>
:Enables translucency shadow testing for a model when VRAD is run with <code>[[#Effects|-TextureShadows]]</code>. Path is relative to the models folder.
;<code><nowiki>ldr:</nowiki></code>
;<code><nowiki>hdr:</nowiki></code>
:Prefixes to make any rule only apply to LDR or HDR lighting.
;<code><nowiki>hdr:ldr:</nowiki></code>
:Lines beginning with both tags (in that order) will always be ignored by VRAD. Can be used to add comments or quickly disable some entries.


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


{{SDKTools:ru}}
==Смотреть также==
* [[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}}


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

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

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