Режим освещения
Чтобы управлять поведением всех светильников в сцене, имеющих режим освещения Смешанный, установите режим освещения в Настройки освещения.
Существует четыре варианта режима освещения, в порядке визуальной достоверности:
- Режим маскировки теней на расстоянии отображает реалистичное освещение на большом расстоянии, но имеет наибольшее влияние на производительность. Вы можете использовать этот режим для открытых миров на платформах высокого или среднего уровня.
- Режим 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 их вместо этого хранят карты освещения.
В субтрактивном режиме, тени реального времени и печеные тени могут не сливаться правильно, потому что lightmaps не содержат достаточно данных для точного расчета слияния. Чтобы улучшить слияние, настройте Realtime Shadow Color в окне Освещение.
Текстуры теневых масок
Если выбрать режим Shadowmask или Distance Shadowmask, Unity создаёт текстуры маски теней для хранения запечённых теней от статических GameObject. Каждая такая текстура хранит сведения о затенении от запечённых источников света и обладает следующими свойствами:
- Использует тот же UV макет и разрешение, что и соответствующая текстура lightmap.
- Хранит до четырех светильников на тексел, каждый светильник хранится в канале RGBA.
Если более четырех огней перекрывают друг друга в любой точке пространства, Unity запекает оставшиеся огни. Если вы снова запечете, те же огни останутся запеченными, если вы не измените перекрывающиеся огни. Чтобы проверить, какие огни перекрываются, используйте Light Overlap Режим отладочной отрисовки для освещения.