Unity 6.3
0 онлайн 102 гостей 3 в системе
Вход
Освещение Шаг 74 из 173

Устранение неисправностей световых зондов

Звонящие

При определенных обстоятельствах светочувствительные зонды демонстрируют нежелательное поведение, называемое «звонком». Это часто происходит, когда имеются значительные различия в освещении вокруг светочувствительного зонда. Например, если вы имеете яркий свет с одной стороны светочувствительного зонда, а с другой стороны нет света, интенсивность света может «перегреться» на задней стороне. Это перегревание вызывает световое пятно на задней стороне.

Пример звонка Светового Пробоотборника. Точечный Свет освещает сферу с одной стороны, но задняя сторона сферы также выглядит частично освещенной.
Пример звонка Светового Пробоотборника. Точечный Свет освещает сферу с одной стороны, но задняя сторона сферы также выглядит частично освещенной.

Существует несколько способов решения этой проблемы:

  • В компоненте Light Probe Group включите Remove Ringing. Unity автоматически удаляет непреднамеренные световые пятна. Однако это обычно делает Light Probes менее точными, и уменьшает световой контраст, так что вы должны проверить визуальные результаты.
  • Расположите игровые препятствия таким образом, чтобы игроки не могли попасть в положение, где они могут увидеть светлое пятно.
  • Не допускайте попадания прямых лучей в светочувствительные зонды. Прямой свет имеет тенденцию к резким перебоям (например, тени), что делает его неподходящим для светочувствительных зондов. Чтобы попасть только косвенным светом, используйте Смешанное освещение.

Устранение неисправностей Размещение светового зонда

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

Пример ниже показывает ночную Scene с двумя яркими уличными фонарями с каждой стороны и темной зоной посередине. Если Световые Пробки расположены только рядом с уличными фонарями, а не в темной зоне, освещение от фонарей «кровавит» через темный пробел, на движущиеся объекты. Это потому, что освещение интерполируется от одной светлой точки к другой, без информации о темной зоне между ними.

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

Если вы используете Realtime или Mixed освещение, эта проблема может быть менее заметной, потому что только косвенный свет просачивается через зазор. Проблема более заметная, если вы используете полностью запеченное освещение, потому что в этой ситуации прямой свет на движущиеся объекты также интерполируется от Световых Зондов. В этом примере Scene, две источники света запечены, так что движущиеся объекты получают свой прямой свет от Световых Зондов. Здесь вы можете увидеть результат.

В той же сцене движущаяся машина скорой помощи остается ярко освещенной, проезжая через темную зону. Желтый проволочный тетраэдр показывает, что интерполяция происходит между одним ярко освещенным концом улицы и другим.
В той же сцене движущаяся машина скорой помощи остается ярко освещенной, проезжая через темную зону. Желтый проволочный тетраэдр показывает, что интерполяция происходит между одним ярко освещенным концом улицы и другим.

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

Чтобы решить эту проблему, вы должны разместить больше светочувствительных зондов в темной зоне, как показано ниже:

Та же самая сцена, с другим набором Световых Зонд добавленных на полпути между двумя уличными фонарями.
Та же самая сцена, с другим набором Световых Зонд добавленных на полпути между двумя уличными фонарями.

Теперь Scene имеет Световые Пробки в темной области тоже. В результате, движущаяся скорая помощь принимает на более темное освещение, как она путешествует от одной стороны Scene к другой.

Та же сцена, теперь с движущейся машиной скорой помощи, которая принимает более темное освещение в центре сцены.
Та же сцена, теперь с движущейся машиной скорой помощи, которая принимает более темное освещение в центре сцены.

Устранение неисправностей Световой зонд шум

В следующем примере оба изображения представляют собой сцены, освещенные с использованием одних и тех же настроек освещения, за исключением значения Light Probe Sample Multiplier. Сцена слева показана, когда вы установили Light Probe Sample Multiplier на 1, что приводит к неоднородности световых зондов и вызывает шум в сцене. На правом изображении вы можете смягчить проблему, установив Sample Multiplier на 32.

Сцена детской спальни, с решеткой световых зондов, видимых по всей сцене в виде сфер. Слева зонды ярко разноцветные. Справа зонды менее ярко окрашены.
Сцена детской спальни, с решеткой световых зондов, видимых по всей сцене в виде сфер. Слева зонды ярко разноцветные. Справа зонды менее яркие.

Причина

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

Это также относится к группам световых зондов и адаптивным объемам зондов.

Резолюция

Вы можете смягчить эту проблему, изменив значение Multiplier Sample Light Probe. Multiplier Sample Light Probe действует как общий мультипликатор для прямых, косвенных и экологических выборок. Чем выше мультипликатор, тем больше образцов получат световые зонды. Это улучшит их визуальное качество при небольшом снижении времени запекания.

Если свойство Light Probe Sample Multiplier недоступно в Освещение окна, перейти к Project Настройки > Редактор > Графика и отключить Использовать устаревший Light Probe флажок подсчета выборки.

Устранение неисправностей избыточных световых зондов

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

Примечание: LightProbes.TetrahedralizeAsync применяется только если вы используете Группы световых зондов для размещения световых зондов, и не применяется к Адаптивным зондам.

Сцена рынка, вид сверху, с решеткой световых зондов, видимых по всей сцене как сферы. Слева, есть синие световые зонды, которые не соответствуют сцене. Справа, синие световые зонды исчезли.
Сцена рынка, вид сверху, с сеткой световых зондов, видимых по всей сцене в виде сфер. Слева есть синие световые зонды, которые не соответствуют сцене. Справа синие световые зонды исчезли.

Причина

Unity использует тетраэдральное пространственное отображение, чтобы определить, какие световые зонды использовать для освещения динамического GameObjects. При загрузке и разгрузке сцен, содержащих световые зонды, важно перерассчитать тетраэдральное отображение. Если это не удастся, это приведет к неправильному затенению объектов, освещенных зондами.

Резолюция

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

Следующий пример взят из проекта Additive Loading Lighting Examples. Эта настройка проекта обеспечивает плавный переход освещения при загрузке и разгрузке сцен.

Сцена с тремя смежными областями, расположенными рядом друг с другом, видна сверху. Области красные, зеленые и синие, и каждая из них представляет собой комнату, содержащую геометрические фигуры и сетку сфер, представляющих световые зонды. На левом изображении красная область содержит только световые зонды. На правом изображении зеленая область содержит только световые зонды.
Сцена с тремя смежными областями, расположенными рядом друг с другом, видна сверху. Области красные, зеленые и синие, и каждая из них представляет собой комнату, содержащую геометрические фигуры и сетку сфер, представляющих световые зонды. На левом изображении красная область содержит только световые зонды. На правом изображении зеленая область содержит только световые зонды.
  • В Постоянном Scene есть синяя комната и некоторые объекты, освещенные зондами. В нем нет световых зондов. Эта сцена всегда загружена и будет действовать как переходная зона.
  • Scene A имеет зеленый коридор и некоторые объекты, освещенные зондами. У нее есть группа световых зондов, которая окружает Scene A и Постоянный Scene. Эта сцена добавочно загружается по требованию.
  • Scene B имеет красный коридор и некоторые объекты, освещенные зондами. У нее есть группа световых зондов, которая окружает Scene B и Постоянный Scene. Эта сцена добавочно загружается по требованию.

Чтобы узнать больше об аддитивном освещении, пожалуйста, обратитесь к проекту Примеры освещения аддитивной загрузки в Unity Asset Store.

Утечка светочувствительного зонда

Утечка светового зонда происходит, когда зонд из светлой зоны воздействует на объект в темной зоне или наоборот. Эта проблема наиболее заметна вблизи стен или другой окклюзивной геометрии, когда плотность зонда недостаточна.

Симптомы

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

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

Причина

Утечка светового зонда происходит, когда интерполяция данных светового зонда неправильно распределяет освещение из одной зоны в другую из-за низкой плотности зонда.

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

Резолюция

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

Увеличение плотности светового зонда

Чтобы увеличить плотность светового зонда, выполните следующие действия:

  • Добавить больше световых зондов вокруг пострадавшего объекта для повышения точности.
  • Если проблема заметна вблизи стен, разместите вдоль них плотные кластеры зондов.
  • Чтобы уменьшить утечку света, разместите буфер из двух зондов по обе стороны стены.

См. Размещение световых зондов с помощью редактора.

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

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

Для корректировки Переопределение якоря свойства, выполните следующие действия:

  1. Установить Переопределение якоря свойства в Рендерер сетки компонент.
  2. Назначьте существующую точку GameObject или создайте пустую точку, которая будет выступать в качестве точки анкера.

Использовать прокси-тома Light Probe (LPPVs)

Компонент Light Probe Proxy Volume (LPPV) размещает зонды в заданной плотности в пределах блока GameObject.

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