VRAD:ru

From Valve Developer Community
Revision as of 12:27, 10 February 2020 by Smelt93 (talk | contribs)

Jump to: navigation, search
English

VRAD это инструмент командной строки, он берет уже готовый BSP и добавляет в него данные об освещении. Статическое и заготовленное освещение функционируют через radiosity алгоритм.

VRAD может:

VRAD является самым медленным из компиляторов. оптимизация освещения может помочь ускорить процесс, если на карте нет утечек.

Tip: Если Вы наблюдаете как процесс компиляции словно завис на 9... не переживайте, дело в том, что на каждый новый просчет карты освещения тратится всё больше времени..

Warning: VRAD сильно нагружает процессор во время компиляции!

Bug: Если в EP1 или L4D во время компиляции освещения в HDR происходит сбой, прочтите это.
Bug: В серии игр L4D, .mdl модели, которые не имеют .dx80.vtx будут проигнорированы компилятором VRAD . Скопируйте .dx90.vtx файл и переименуйте его в .dx80.vtx чтобы исправить это.

Имеется батник, который будет это делать автоматически: [1] (разместите файл в папке с моделью и запустите батник.)

Bug: К тому же, .mdl файлы, имеющие заголовок IDST1 не будут обработаны для VBSP, и выдадут сообщение об ошибке, говорящее что модель не удалось загрузить; это можно исправить, изменив заголовок на IDST0 в 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
Bug: Иногда на лайтмапе могут быть слишком черные тени и грубые переходы от света к темноте.
Tip:Source Engine BSP Lightmap Editor с его помощью можно вручную редактировать УЖЕ ЗАПЕЧЕННЫЙ лайтмап у готовой BSP..

Синтаксис

vrad [options...] <bsp file>

Пример:

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

Это сгенерирует и встроит и стандартные и High Dynamic Range данные освещения с детализацией по каждой вершине для энтити prop_static.

Опции

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

Эффекты

-ldr
-hdr
-both
Компилировать ли стандартное или High Dynamic Range освещение, либо оба.
Note:В <Insurgency><Counter-Strike: Global Offensive>, ОБЯЗАТЕЛЬНО компилировать с -hdr для правильного освещения, т.к. LDR не поддерживается.
-fast
Быстрый и грязный свет. Не заморачивайтесь с этим.
Note:-fast приведет к появлению случайно окрашенных пятен в темных областях.
-final
Улучшает качество light_environment и непрямого света, затрачивая больше времени на лучи.
-extrasky <integer>
Прослеживает в N раз больше лучшей для непрямого освещения и неба.
(-final то же самое, что и -extrasky 16; normal соответствует -extrasky 1)
-lights <filename>.rad
Загружает пользовательский файл освещения в дополнение к lights.rad и файлу освещения непосредственно для этой карты. В этот параметре необходимо указывать расширение файла.
-bounce <integer>
Устанавливает максимальное число лучей света. (по умолчанию: 100).
-smooth <integer>
Устанавливает порог для групп сглаживания, в градусах (по умолчанию: 45).
-luxeldensity <normal>
Уменьшает масштаб всех люкселей. По умолчанию (максимальное значение) 1.
-softsun <float>
Рассматривает солнце как источник освещения в этой степени. Создает мягкие тени. Рекомендуемые значения 0-5, по умолчанию is 0. Идентично параметру SunSpreadAngle для light_environment, Используйте его вместо этого.
-StaticPropLighting  (New with Half-Life 2: Episode Two / Source 2007)
генерирует освещение по вершинена prop_staticах; всегда включено для энтити light_spot. Отключает энтити info_lighting на пропах без карт рельефа на текстуре. Не работает на пропах с картами рельефа на текстуре во всех играх, кроме <Counter-Strike: Global Offensive>.
Warning: Это может существенно увеличить размер файла вашей карты. Отключите освещение по вершинам для пропов, которым это не требуется, чтобы сохранить размер файла небольшим.
Note:В <Counter-Strike: Global Offensive>,чтобы получить правильное освещение на ваших static props, вам нужно запустить VRAD с этим параметром.
-StaticPropPolys  (New with Half-Life 2: Episode Two / Source 2007)
Использовать актуальные меши ваших static props для генерации теней вместо использования их мешей столкновения. Это ведет к более точному созданию теней shadowing.
-TextureShadows  (New with Half-Life 2: Episode Two / Source 2007)
Генерировать тени карты освещения из $translucent поверхностей моделей (НЕ брашей), которые указаны в файле освещения и используются с prop_static. Обычно требуют включенного параметра -StaticPropPolys.
Note:Поверхность требует низкомасштабной карты освещения, чтобы большинство текстур теней были узнаваемыми.
Note:По какой-то странной причине это не будет работать, если VMT файл полупрозрачной текстуры содержит .vtf файл, заканчивающийся строками с basetexture.
-aoscale <float> (New with Counter-Strike: Global Offensive)
Определяет масштаб интенсивности моделируемой окклюзии VRAD. По умолчанию 1.0 .
Tip:Valve используют 1.5 для новой Dust 2.
-aoradius <float> (Only in Insurgency)
Устанавливает радиус имитации окклюзии VRAD. To do: Узнать, как именно.
-aosamples <integer> (Only in Insurgency)
Как много сэмплов использовать для имитации окклюзии VRAD.
-StaticPropBounce <integer> (Only in Counter-Strike: Global Offensive)
Число симуляции световых отражений статических пропов. По умолчанию 0.
Tip:Valve используют 3 три отражения статических пропов для новой Dust 2.
Note:У любого статического пропа можно отключить световые отражения через ключ "Enable Bounced Lighting".
-StaticPropLightingFinal  (Only in Counter-Strike: Global Offensive)
Компилирует освещение более высокого качества для статических пропов.
-StaticPropLightingOld  (Only in Counter-Strike: Global Offensive)
Использовать старый алгоритм освещения для пропов, на них свет влияет сильнее всего.
-choptexlights  (Only in Black Mesa)
Включает разделение текстурного света, сгенерированного на основе файла освещения. Управляет качеством текстурного света с помощью плотности карты освещения в Hammer. Существенно увеличивает качество текстурного освещения и время компиляции.
-extratransfers  (Only in Black Mesa)
Включить масштабирование передачи света.
-transferscale <float> (Only in Black Mesa)
Масштабный коэффициент передачи света. Увеличанные значения заставляют поверхности передавать больше света (предлагается масштаб 2-4). По умолчанию 1.0.
-satthresh <float> (Only in Black Mesa)
Порог, определяющий насыщенность цвета материала. Используется вместе с -satthreshscale. По умолчанию 0.4.
-satthreshscale <float> (Only in Black Mesa)
Количество масштабируемого света переносится с поверхностей, которые превышают порог насыщенности. По умолчанию 3.0.

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

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

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

-rederrors
подсвечивает люксели без сэмплов
-vproject <directory>
-game <directory>
Указать путь к VPROJECT (Game Info).
-insert_search_path <directory>
To do: Что это такое?
-v
-verbose
Включить подробный отчёт-вывод.
-novconfig
Не запускать игру при наличии ошибок с Vconfig (при проблемах с поиском контента игры.
-dump
Сброс патчей для отладки файлов..
-dumpnormals
Записывать нормали в файл дампа .txt.
-debugextra
Помещает данные отладки в лайтмапы для визуализации суперсэмплинга.
-dlightmap
Превращает направленное освещение в разнонаправленные лайтпамы..
-stoponexit
Ждать нажатия кнопки, для выхода (закрытия окна).
-nodetaillight
Не освещать дитейл пропы (или func_details?).
-centersamples
Переместить сэмплы в центр.
-loghash
Записать хэш таблицы в samplehash.txt.
-onlydetail
Освещать только детейл пропы и per-leaf .
-maxdispsamplesize <integer>
Установить максмальный размер сэмплов для дисплейсментов (по умолчанию: 512).
-FullMinidump
Написать большой минидамп при краше.
-OnlyStaticProps
Выполнять только прямое освещение prop static (или же простое освещение?).
-StaticPropNormals
Когда освещаются static props, просто отображать направление нормалей.
-noskyboxrecurse
Отключить рекурсию для 3d skybox (тени скайбокса на карту).
-nossprops
Отключить все произвольные тени для static props (когда существует тень от бочки, даже карте без освещения.
-dumppropmaps  (Only in Source 2013 MP)
Сдампить (слить) вычисленные карты освещения. .

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

Файл освещения представляет собой обычный TXT документ VRAD , который вы можете править. Он указывает какие материалы могут излучать статическое освещение. Ваши .rad файлы должны лежать в той же папке, где и gameinfo.txt

также:

  1. lights.rad, является глобальным файлом (используется всеми картами).
  2. Для автозагрузки файла освещения, нужно использовать <имя карты>.rad. файл должен быть расположен там же, где и <имя карты>.vmf.
  3. Любое количество файлов освещения могут быть добавлены в карту, если использовать the -lightsпараметр .

Правила-Условия

Чтобы файлы освещения работали правильно, на каждую отдельную текстуру должна идти отдельная строка по следующему шаблону:

<ПАПКА lights/Имя текстурыl> <красный> <зеленый> <синий> <яркость> <hdr_красный> <hdr_зеленый> <hdr_синий> <hdr_яркость>
Материал должен покрывать грани обычных брашей (hdr_ значение не обязательно) Размер текстуры в хаммере напрямую влияет на степень яркости.
Note:На самом деле не текстура излучает свет, это делает обычный light энтити, который расставляется движком на расстоянии каждые 4 люкселя (пикселя). Иногда быстрее и разумней будет сделать это вручную в хаммере.
Note:Текстуры, которые не лежат в папке Light, а находятся просто в materials, должны иметь перед своим именем слеш /ИМЯ_ТЕКСТУРЫ.

Warning:  func_detail на которых будут нанесены текстуры излучающие свет, возможно не обработаются VRAD.

noshadow <имя текстуры>
Запрещает данной текстуре отбрасывать тень.
forcetextureshadow <путь к модели>.mdl
Включает тестирование полупрозрачной тени для модели, когда VRAD запускается с -TextureShadows. нужно указать папку расположения модели.
ldr:
hdr:
Префиксы для выполнения в режиме LDR или HDR.
hdr:ldr:
Строки, начинающиеся с обоих тегов (в таком порядке), всегда будут игнорироваться VRAD. Может использоваться для добавления комментариев или быстрого отключения некоторых параметров.

Обратите внимание также на