logo
Разрабокта расширения для игрового движка Unity

3.8 Система освещения Unity

Система освещения Unity состоит из источников освещения, системы запекания света, системы шейдеров и системы глобального освещения. Все отображаемые объекты имеют свой компонент-рендерер, к которому прикреплен материал. Материал представляет собой шейдер, параметры которого можно настраивать. Шейдеры могут быть написаны пользователями, а могут быть выбраны из стандартных. Для объявления переменных и описания функций расчета освещения используются специальные файлы с расширением. cginc.

Источники освещения являются объектами с прикрепленным к ним специальным компонентом. Unity поддерживает следующие типы источников освещения:

- Point light

- Spot light

- Directional light

- Area light

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

Таким образом, разрабатываемая система должна включать в себя как минимум следующие функции:

- Поддержка источников освещения, подобных источником редактора Unity

- Система расчета теней для всех типов 2D объектов

- Расчет теней в режиме реального времени в окне редактора

- Работа в плоскости XY

- Работа без привязки к системе коллайдеров

- Графический интерфейс для настройки компонентов системы

- Поддержка шейдеров для расчета освещения объектов

Помимо этого, в расширении будет реализована система планов на подобии системы Swing, swing, submarine и специальная система для задания формы тени, отбрасываемой объектами. Для удобства использования система должна быть тщательно документирована.