Sprite Lamp: динамическое освещение 2D-объектов

от автора

Австралийский разработчик indie-игр Финн Морган (Finn Morgan) разработал очень интересную и полезную технологию для динамической подсветки 2D-спрайтов Sprite Lamp. Изюминкой этого движка является то, что для подсветки объекта с произвольной точки не требуется построение 3D-модели.

Теперь каждый может свободно использовать Sprite Lamp в своих играх.

Финн Морган объясняет, как работает движок динамической подсветки. Например, возьмём стандартный «плоский» спрайт зомби.

На следующем этапе нужно перевести изображение в режим оттенков серого и создать профили освещения с каждой стороны: справа, слева, сверху и снизу. Движок не может сделать это сам, так что разработчик должен сделать профили вручную. Как минимум требуется два профиля, максимум — пять. Чем больше профилей создано, тем меньше требования к их точности. Вышеупомянутая анимация зомби сгенерирована на основе четырёх профилей.

После этого профили «скармливаются» программе Sprite Lamp.

Sprite Lamp создаёт произвольные карты освещения на основе загруженных профилей. Результат выглядит следующим образом.

Sprite Lamp отлично работает и с пиксельными рисунками, и с отсканированными карандашными набросками.

13 ноября Финн Морган начнёт сбор средств на Kickstarter для своего проекта. В данный момент движок работает только под Windows. Но после получения финансирования он обещает разработать версии под Linux и Mac OS X. Будет выпущено три версии Sprite Lamp: бесплатная, версия для любителей и профессиональная. К сожалению, бесполатной версией вряд ли смогут воспользоваться разработчики независимых игр, потому что она будет вставлять водяные знаки в анимации, но стоимость вполне функциональной версии для любителей будет не очень высокой. Остаётся надеятся, что довольно скоро код подобной программы будет опубликован в обзественном достоянии, потому что вещь очень полезная.

ссылка на оригинал статьи http://habrahabr.ru/post/201572/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *