Найти тему
FunnyDev

Как разработчики оптимизируют игры: свет

Оглавление

Свет - неотъемлемая часть многих игр. Если бы в ваших любимых играх не было света, то едва ли вы смогли бы что-то разглядеть. Но как же работает свет в 3D-играх?

Источники света

Практически в любой игре есть источники света. Давайте познакомимся с основными видами:

Освещение за счет "неба" - способ освещения, при котором окружение приобретает "оттенки" света, опираясь на то, какая текстура используется в качестве неба. Скажем, если у вас установлено розовое небо, и включен данный способ освещения, то вся карта может окраситься в розовый цвет, в зависимости от мощности данного источника.

Точечный свет - лучи света исходят из точки во всех направлениях. Как правило, у него есть мощность и радиус. С его помощью, например, делают свет от факелов, лампочек.

"Прожектор" - конус света. С его помощью делаются фонари, те же лампы и т. д.

Направленный свет - способ освещения, при котором лучи света идут по всему игровому миру параллельными лучами в заданном направлении. Используется для имитации солнца.

Как работает свет?

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

Как происходит оптимизация?

Просчитывать свет каждый кадр - очень дорогая операция. Поэтому во многих играх свет "запекается". Это означает, что все освещение в сцене просчитывается заранее и записывается в текстуры объектов, а сами объекты делают независимыми от источников света. В таком случае, сами источники света можно убирать. Это очень сильно спасает производительность игры.

А как же движущиеся объекты?

Действительно, запекание света не будет работать корректно для динамических объектов. Есть 2 способа решения этой проблемы:

Смешанное освещение - использование запеченного и незапеченного света одновременно. Это все еще оптимизирует игру, потому что свет просчитывается только для динамических объектов

Передача статического освещения динамическим объектом облегченной логикой - при помощи несколько иных математических моделей свет просчитывается для динамических объектов, как только они попадают в зону действия источников света.

Другие способы освещения?

Их можно придумать сколько угодно. Так, например, Minecraft может позволить себе не пускать лучи света, а делать n-ное количество блоков от источника освещения чуть светлее.

Вывод

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

Если вам понравилась эта статья, возможно, вы захотите поставить ей лайк и подписаться на новые статьи, а также ознакомиться с другими статьями:

Другие способы оптимизации

Поединок ИИ и человека

Настройки графики в играх

Симуляции эволюции

Всем любви, тепла и добра!