Создание графики в мобильной RPG Age of Magic

Опыт разработчиков из студии Playkot.

Создание графики в мобильной RPG Age of Magic
4444

"Мы активно работаем над уменьшением размера билда. Для этой цели созданы скрипты, которые проходят по всем материалам и объединяют текстуры по каналам. Так Specular Map и Emission будут упакованы в альфа-каналы NormalMap и ColorMap."

Степень сжатия альфа канала зависит от формата текстур которые используются(якрий пример 1 битная альфа, которая отвечает только за Есть Спекуляр/Нет спекуляра). Никто не мешает хранить текстуры в РГБ канале с таким же количеством бит. Поэтому некорректно приводить в пример "уменьшение размера билда" - это делается для уменьшения количества вызовов прохода рендера (DrawCall/SetPass), каналы будут браться из одной текстуры и соответственно в этом будет экономия. А чтобы экономить именно "размер билда" - гораздо эффективнее хранить спекуляры и эмиссии в файлах - которые меньше по размеру: 128*128 вместо 1024*1024(для эмиссии очень часто такого уменьшения достаточно без потери качества, со спекуляром сложнее, но он тоже поддается уменьшению без потери визуального качества от эффекта).
За АО в вертекс колоре отдельное спасибо) но можно не забывать о том что есть ещё и РГБ цвет и в него можно запекать колорблидинг, а не просто чернобелое затенение как в случае с АО.
В целом было интересно, почаще бы выкладывали подобный материал для просвещения независимых разработчиков у которых нет возможности обучаться в рамках студий :)

3
Ответить

Мы используем текстурную компрессию с фиксированным размером на пиксель (PVRTC 4bpp, ETC2 8bpp), т.е. перенос спекуляра в альфа канал не влияет на её размер, а значит уменьшает общий. )
Для сценариев, когда нам нужно больше 2х дополнительных каналов, используем дополнительную текстуру, меньшего разрешения.
Основной шейдинг у нас однопроходный, т.е. "уменьшения количества вызовов" не происходит, максимум можно получить - выигрыш в количестве чтений из текстуры. Но, учитывая префетч, вероятность "почувствовать" его на практике очень мала.

4
Ответить