Рантайм Генерация Лайтмап
Ссылка на
блог пост.
Демо:
http://playcanv.as/p/txPePQvy
Зарелизили очередную фичу, весьма уникальную для платформы WebGL.
Лайтмапы - с самых первых времён игр был мэйнстрим способ реализации дешёвого и реалестичного освещения.
Но в WebGL мы редко наблюдаем лайтмапы, т.к. это требует дополнительных усилий со стороны художников и использования сторонних инструментов для запекания лайтмап, что усложняет процесс работы с реальными проектами.
Дополнительно к этому, лайтмапы имеют весьма большое требование к объему данных, количество и размер текстур линейно растёт с площадью уровней и статичной геометрии. А для Web'а, очень важно как можно быстрее позволить пользователю, насладиться и взаимодействовать с WebGL контентом.
Поэтому мы реализовали
запекание лайтмап в рантайме. Заместо скачки мегабайты текстур, быстрее запечь эти самые текстуры во время загрузки приложения. Таким образом мы экономим на трафике, и т.к. запекание чаще быстрее чем скачка того же объема данных, пользователю не нужно ждать долго, до того как он может взаимодействовать с контентом.
Также, весь процесс работы интегрирован в сам Editor, и не требует никакой адаптации к другому процессу работы, или использованию сторонних приложений.
Разница в производительности на слабых девайсах - самый заметный эфект. Попробуйте данную демка на мобильном девайсе.
Это первая версия, которая не имеет большой ряд возможностей, которые будут реализованы в будущем:
1. Лайтмап блики (specular)
2. Запекание Ambient Occlusion
3. Запекание глобального освещения
4. Асинхронное запекание
5. Улучшенное качество теней
6. Дополнительные источники освещения (area lights)
7. И многое другое