Многие (большинство?) Графических карт требуют квадратов для изображений с степенью двойности. Так, например, 128x128, 512x512 и т. Д. Многие / большинство спрайтов, однако, не являются такими измерениями. Затем у вас есть два варианта:
- Округление изображения спрайта до ближайшего квадрата степени двойки. Спрайт 16x32 становится вдвое больше с прозрачным заполнением пикселей до 32x32. (это очень расточительно)
- Упакуйте несколько спрайтов в одно изображение. Вместо заполнения с прозрачностью, почему бы не заполнить другими изображениями? Упакуйте эти изображения максимально эффективно! Затем просто визуализируйте сегменты изображения, что полностью допустимо.
Очевидно, что второй вариант намного лучше, с меньшим количеством потерянного пространства. Так что, если вам нужно упаковать несколько спрайтов в одно изображение, почему бы не упаковать их все в виде листа спрайтов?
Итак, подведем итог: файлы изображений при загрузке в видеокарту должны иметь степень двойки и квадрат. Тем не менее, программа может выбрать визуализацию произвольного прямоугольника этой текстуры на экране; оно не должно быть степенью двойки или квадратом. Итак, упакуйте текстуру с несколькими изображениями, чтобы наиболее эффективно использовать пространство текстур.