Unity 6.3
0 онлайн 13 гостей 3 в системе
Вход

Режим освещения

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

Существует четыре варианта режима освещения, в порядке визуальной достоверности:

  • Режим маскировки теней на расстоянии отображает реалистичное освещение на большом расстоянии, но имеет наибольшее влияние на производительность. Вы можете использовать этот режим для открытых миров на платформах высокого или среднего уровня.
  • Режим Shadowmask похож на Distance Shadowmask, но имеет меньше теней в реальном времени и меньше влияет на производительность.
  • Запеченное Косвенный режим отображает реалистичное освещение и тени в реальном времени.
  • Субтрактивный режим отображает простые освещения и тени низкой точности, но имеет низкое влияние на производительность. Вы можете использовать этот режим для аппаратного обеспечения низкого уровня, простых сцен с небольшим количеством освещения или стилизованного искусства, такого как затенение клеток.

Сведения о том, какие конвейеры рендеринга поддерживают какие режимы освещения, см. в Сравнение функций конвейеров рендеринга.

Как Unity рассчитывает освещение

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

Освещение от Смешанные светильники Режим косвенного освещения Режим освещения маскировки теней Режим освещения маскировки теней Режим субтрактивного освещения
Прямое освещение Реальное время Реальное время Реальное время Реального времени для динамических GameObject, запечённое для статических.
Косвенное освещение Запечённый Запечённый Запечённый Запечённый
Зеркальное освещение Да Да Да Динамический GameObjects только
Тени от динамических GameObjects, до Расстояние тени Реальное время Реальное время Реальное время В реальном масштабе времени, только из одного направленного света самой высокой интенсивности
Тени от статических GameObject на расстоянии до Расстояние тени Реальное время Запеченные, от максимум 4 огней на GameObject Реальное время Запеченные, от максимум 4 огней на GameObject
Тени от статических GameObject за пределами Расстояние тени Без теней Запеченные, от максимум 4 огней на GameObject Запеченные, от максимум 4 огней на GameObject Без теней

Где Unity хранит данные освещения

Unity хранит выпеченное косвенное освещение в следующих местах:

  • Световые зонды хранят косвенное освещение динамического GameObjects.
  • Текстуры карт освещения хранят непрямое освещение статических GameObject. В режиме Subtractive они хранят также и прямое освещение.

Unity хранит тени в следующих местах:

  • Тексты теневых карт хранят тени в реальном времени, если Режим освещения их поддерживает.
  • Light Probes и текстуры маски теней хранят запечённые тени от статических GameObject, если режим освещения это поддерживает. В режиме Subtractive их вместо этого хранят карты освещения.
Пример текстуры lightmap с теней. Квадратная область с желтыми линиями представляет собой запеченную поверхность освещения плоскости. Белый круг является ярким точечным светом, а две черные области представляют собой тени от других объектов.
Пример текстуры lightmap с теней. Квадратная область с желтыми линиями представляет собой запеченную поверхность освещения плоскости. Белый круг является ярким точечным светом, а две черные области представляют собой тени от других объектов.

В субтрактивном режиме, тени реального времени и печеные тени могут не сливаться правильно, потому что lightmaps не содержат достаточно данных для точного расчета слияния. Чтобы улучшить слияние, настройте Realtime Shadow Color в окне Освещение.

Текстуры теневых масок

Если выбрать режим Shadowmask или Distance Shadowmask, Unity создаёт текстуры маски теней для хранения запечённых теней от статических GameObject. Каждая такая текстура хранит сведения о затенении от запечённых источников света и обладает следующими свойствами:

  • Использует тот же UV макет и разрешение, что и соответствующая текстура lightmap.
  • Хранит до четырех светильников на тексел, каждый светильник хранится в канале RGBA.
Пример текстуры маски для запекания тени. Квадратная область с желтыми линиями представляет плоскость. Две серые области — тени.
Пример текстуры маски для запекания тени. Квадратная область с желтыми линиями представляет плоскость. Две серые области — тени.

Если более четырех огней перекрывают друг друга в любой точке пространства, Unity запекает оставшиеся огни. Если вы снова запечете, те же огни останутся запеченными, если вы не измените перекрывающиеся огни. Чтобы проверить, какие огни перекрываются, используйте Light Overlap Режим отладочной отрисовки для освещения.

Дополнительные ресурсы