User Manual

Время выполнения световых карт

Sponza Все освещение в этой сцене предоставляется текстурами световых карт

Генерация световых карт - это процесс предварительного расчета информации об освещении для статической сцены и сохранения ее в текстурах, которые затем применяются к материалам. Это эффективный и реалистичный способ освещения сцены, если многие источники света и геометрия являются статическими или окружающими.

Генерация световых карт во время выполнения

PlayCanvas предлагает удобное решение для генерации световых карт. Используя стандартные компоненты света в редакторе, вы можете выбрать, какие источники света используются для выпечки световых карт и какие используются для динамического освещения сцены во время выполнения. Источники света, которые вы устанавливаете для выпечки, будут использоваться при генерации световых карт, освещающих сцену.

Генерация световых карт во время выполнения имеет несколько преимуществ:

Однако недостатком генерации световых карт во время выполнения является то, что в настоящее время мы не поддерживаем выпечку глобального освещения или некоторых других продвинутых функций специализированных инструментов выпечки.

Использование группировки несовместимо с световыми картами во время выполнения, так как каждый объект с отображением световой карты требует своей собственной уникальной текстуры световой карты.

Настройка источников света для выпечки

Каждый компонент Light содержит следующие настройки для включения выпечки световых карт. По умолчанию новые источники света устанавливаются на динамический режим.

Настройки компонента света

Есть еще две опции, которые изменяют поведение источников света: Affect Dynamic и Affect Lightmapped. Они определяют, какие модели будет затрагивать источник света во время выполнения. Если одна из этих опций включена, источник света будет работать во время выполнения и увеличивать затраты на выполнение.

Обратите внимание, что у источника света не может быть одновременно включены опции Bake Lightmap и Affect Lightmapped, так как это приведет к генерации световой карты для модели, в то время как источник света добавляет то же освещение во время выполнения (то есть одна и та же работа выполняется дважды).

Настройки теней компонента света

Световые карты используют те же настройки Shadows (тени), что и динамические источники света, за исключением того, что расчеты теней выполняются один раз при генерации световых карт. Таким образом, включение теней на световых картах обходится дешевле. Дополнительную информацию см. на странице Shadows. Обратите внимание, что опции Shadow Cascade игнорируются при выпечке.

Мягкий направленный свет

По умолчанию выпеченные источники света создают жесткие тени. Чтобы улучшить визуальное качество, для Directional источников света доступна мягкая выпеченная тень, когда опция Bake Direction не включена. В этом случае доступны две дополнительные опции:

Настройки мягкого направленного света

Следующие изображения показывают разницу между жесткими тенями и мягкими тенями. Значение Bake Samples равно 15, а значение Area равно 10.

Примеры жестких и мягких теней

Выпечка света окружения

PlayCanvas поддерживает два типа освещения окружения: Ambient Color и Skybox. По умолчанию оба этих типа применяются во время выполнения.

Ограничение применения освещения окружения во время выполнения заключается в отсутствии Ambient Occlusion. В качестве альтернативы, освещение окружения может быть запечено в карту освещения, включая Ambient Occlusion. Это можно настроить в разделе Lightmapping глобальных настроек.

Если включен Ambient Bake, вклад освещения окружения будет запечен в карты освещения, включая Ambient Occlusion. Обратите внимание, что настройка Samples влияет на производительность запекания и должна быть установлена как можно ниже (5-20).

Lightmapping Settings

На следующих изображениях показан эффект Ambient Color, с Ambient Occlusion и без него.

Ambient Color Examples

Фильтрация Lightmap

Для мягкого направленного света или запекания освещения окружения часто используется небольшое количество выборок для улучшения производительности запекания. Это создает артефакты полос, как видно на следующем изображении, на котором используется 15 выборок.

Lightmap with 15 samples

Для улучшения качества карт освещения можно использовать большее количество выборок. Это дает наилучшее возможное качество, как видно на следующем изображении, на котором используется 100 выборок.

Lightmap with 100 samples

В качестве более производительной альтернативы, карту освещения можно отфильтровать с использованием умного двустороннего размытия для приемлемого качества с большей производительностью. Это видно на следующем изображении, на котором используется 15 выборок и включена фильтрация.

Lightmap with 15 samples and filtering

Обратите внимание, что фильтрация выполняется на окончательных запеченных картах освещения и может создать некоторые видимые края на швах развернутых UV, так как карта освещения не фильтруется по швам. Поэтому фильтрация может не подходить для каждой сцены. Чтобы свести к минимуму артефакты, вы должны иметь хороший баланс между сильным фильтром и большим количеством выборок.

Настройка моделей для запекания

Каждый компонент Model или Render должен иметь включенное картографирование освещения, чтобы получать карты освещения. Картографирование освещения можно включить в свойствах компонента, установив флажок Lightmapped.

Model Component Settings

Render Component Settings

Опция Cast Lightmap Shadows определяет, будет ли модель создавать тени на карте освещения. Вы можете увидеть разрешение текстуры карты освещения, созданной и есть также опция применения множителя к области UV1 для изменения его размера. Множители размера карты освещения обсуждаются ниже.

Общие настройки света

Существует несколько комбинаций настроек света, которые могут быть использованы. Каждый из них имеет свое применение, и используя свет с разными комбинациями, вы можете сбалансировать высококачественную визуализацию с производительностью.

Bake Affect Non-Baked Affect Baked Description
false true false Это динамический свет по умолчанию. Влияет на все модели без карт освещения.
true false false Этот свет генерирует карты освещения для моделей с картами освещения и не имеет затрат во время выполнения. Большинство статических светов окружения могут использовать эту настройку.
true true false Этот свет генерирует карты освещения, но также влияет на модели без карт освещения. Это полезно, если у вас есть динамические/движущиеся объекты, которые должны быть освещены этим светом. Например, яркий свет окружения, который также должен влиять на игрового персонажа.
false true true Этот свет является динамическим светом, который будет влиять на модели с картами освещения и без них.

Настройки Lightmapping

Настройка Size Multiplier влияет на все компоненты Model и Render. PlayCanvas автоматически определяет, какое разрешение карт освещения требуется для модели. Он рассчитывает это значение на основе масштаба и размера области геометрии модели. Вы можете влиять на этот расчет, изменяя поле Size Multiplier в глобальных настройках компонента Model или Render.

Например, рассмотрим плоскость размером 1x1 единица (метр). Если глобальный множитель размера равен 16, а множитель компонента модели равен 2, будет сгенерирован размер текстуры Lightmap 32x32 (1 кв/м * 16 * 2). У вас будет 32x32 пикселей на одном квадратном метре, что составляет около 3 см размер пикселя.

Max Resolution устанавливает максимальный предел разрешения для создаваемых карт освещения с целью экономии памяти.

Mode позволяет указать, какие данные должны быть запечены (например, диффузный цвет или направление от пикселя к свету). Данные о направлении используются для имитации упрощенной зеркальности. Может быть запечено только одно направление, что приводит к сложности при перекрытии нескольких источников света. Затем на отдельных источниках света можно установить запекание направления.

Global Lightmapping Settings

Автоматическое развертывание и генерация UV1

Карты освещения всегда применяются с использованием второго набора UV-координат (UV1) на модели ассетов. Для достижения наилучших результатов мы рекомендуем добавить второй набор UV-координат из инструмента 3D-контента в вашу модель перед загрузкой ее в PlayCanvas. Дополнительную информацию о дружественных к картам освещения UV-координатах можно найти в разделе UV Mapping.

Если ваша модель не имеет набора UV1, редактор PlayCanvas может автоматически развернуть и сгенерировать UV1-координаты для модели.

Model Component: UV1 Missing

Если вашей модели не хватает карты UV1, вы увидите предупреждение в компоненте модели при включении карт освещения.

Model Asset: Auto Unwrap Pipeline

Чтобы исправить предупреждение, выберите ассет модели и откройте раздел Pipeline. Нажмите кнопку Auto-Unwrap и дождитесь завершения индикатора выполнения. Автоматическое развертывание изменит ассет модели, поэтому если вы повторно импортируете модель из источника (например, загрузите новый FBX), предварительно рассчитанный UV1 будет потерян. Если загруженная модель не имеет UV1, вам нужно будет снова выполнить автоматическое развертывание модели.

Опция Padding определяет расстояние между секциями при развертывании. Если вы видите просачивание света (то есть свет, которого не должно быть на карте освещения), вы можете увеличить отступ для уменьшения просачивания.

This site is translated by the community. If you want to get involved visit this page