Освещение
Некоторые функции, описанные в настоящем документе, более не поддерживаются, либо начнут поддерживаться в будущем.
Внутренняя реализация
Источники света, и все что к ним прямо относится реализовано в библиотеке sxlight.dll
Работа с локальными источниками света осуществляется игровой библиотекой sxgame.dll через игровые объекты Light point и Light directional, с глобальным посредством внутренних механизмов библиотеки sxlevel.dll при помощи настроек уровня и погоды.
Освещение рассчитывается в библиотеке рендера sxrender.dll
SkyXEngine реализует только динамическое (real-time) освещение. Не поддерживается рассеянное освещение и осуществляется только прямой расчет. Внутренние оптимизации по расчету теней присутствуют.
Движок использует deferred shading для расчетов освещения, это позволяет создавать неограниченное реализацией количество источников света. Единственное ограничение в данном случае это производительность. Все источники света, который генерируют тень, требуют бОльших вычислительных операций, нежели те источники света, которые не генерируют тень.
Освещение и материалы реализованы по принципам Physically based rendering (PBR), но без использования отражений. Это значит что для настройки материала нужно руководствоваться основными понятиями и составом материалов и не заботиться об их внешнем виде в различных ситуациях.
Типы и виды источников света
Освещение состоит из глобального и локального источников света.
Виды источников света:
- Глобальный (солнце) - освещает всю локацию;
- Локальный точечный (лампочка) - освещает все в радиусе освещаемости;
- Локальный направленный (прожектор) - освещает все в направлении освещения по дистанции освещае мости.
Освещение глобальным источником света | Освещение точечным источником света | Освещение направленным источником света |
Глобальный источник света на уровне может быть только один, движок не создаст второй, а просто вернет текущий.