3.8 Система освещения Unity
Система освещения Unity состоит из источников освещения, системы запекания света, системы шейдеров и системы глобального освещения. Все отображаемые объекты имеют свой компонент-рендерер, к которому прикреплен материал. Материал представляет собой шейдер, параметры которого можно настраивать. Шейдеры могут быть написаны пользователями, а могут быть выбраны из стандартных. Для объявления переменных и описания функций расчета освещения используются специальные файлы с расширением. cginc.
Источники освещения являются объектами с прикрепленным к ним специальным компонентом. Unity поддерживает следующие типы источников освещения:
- Point light
- Spot light
- Directional light
- Area light
Каждый из них обладает собственным набором атрибутов. Информация об источниках передается в шейдеры автоматически специальным потоком, однако у пользователей нет доступа к исходным кодам движка, из-за чего управлять этим процессом затруднительно.
Таким образом, разрабатываемая система должна включать в себя как минимум следующие функции:
- Поддержка источников освещения, подобных источником редактора Unity
- Система расчета теней для всех типов 2D объектов
- Расчет теней в режиме реального времени в окне редактора
- Работа в плоскости XY
- Работа без привязки к системе коллайдеров
- Графический интерфейс для настройки компонентов системы
- Поддержка шейдеров для расчета освещения объектов
Помимо этого, в расширении будет реализована система планов на подобии системы Swing, swing, submarine и специальная система для задания формы тени, отбрасываемой объектами. Для удобства использования система должна быть тщательно документирована.
- Введение
- 1. Актуальность работы
- 2. Цели и задачи работы
- 3. Обзор аналогов
- 3.1 2D Light System
- 3.2 2D Dynamic Lights and Shadows
- 3.3 Light2D - GPU Lighting System
- 3.4 Light2D
- 3.5 2DVLS (2D Volumetric Lights and Shadows)
- 3.6 Seasons After Fall Rendering System
- 3.7 Игровой движок Ethanon 2D
- 3.8 Система освещения Unity
- 4. Компоненты разрабатываемой системы
- 4.1 Планы
- 4.2 Объекты
- 4.3 Источники света
- 4.3.1 Ambient Light
- 4.3.2 Directional Light
- 4.3.3 Point Light
- 4.3.4 Spot Light
- 4.3.5 Area Light
- 4.3.6 Emissive Objects
- 4.4 Система расчета теней
- 4.4.1 Расчет внешних теней
- 4.4.1.1 Метод трассировки лучей
- 4.4.2 Форма теней
- 4.4.3 Внутреннее освещение
- 4.5 Запекание света
- 4.6 Менеджер освещения
- 4.7 Графический интерфейс
- 4.8 Документация
- 5. Реализация системы в Unity
- 5.1 Реализация объектов
- 5.2 Источники освещения
- 5.2.1 Ambient Light
- 5.2.2 Point Light
- 5.2.2.1 ShadowMap
- 1. Определение, находится ли источник внутри объекта
- 2. Поиск базовых и вспомогательных точек
- 5.2.2.1.2 Поиск базовых и вспомогательных точек
- 5.2.2.1.3 Поиск крайних точек
- 5. Поиск корректирующих коэффициентов для задания UV координат
- 5.2.2.1.5 Поиск корректирующих коэффициентов для задания UV координат
- 5.2.2.1.6 Поиск "точек привязки"
- 5.2.2.1.7 Наложение текстуры тени