Есть ли преимущества в производительности при использовании двух мощных текстур на современных интегрированных и дискретных графических процессорах?
Большинство современных графических процессоров поддерживают не-две текстуры (NPOT) и хорошо справляются с ними. Падение производительности довольно мало. Но есть несколько проблем для рассмотрения:
При использовании текстуры NPOT она занимает больше места в оперативной памяти, как и текстура POT следующего размера. Технически вы просто тратите пространство, которое можно было бы использовать для чего-то;
Текстуры NPOT могут обрабатываться заметно медленнее (в OpenGL 2.1 у меня было падение производительности до 30%) по сравнению с POT следующего размера;
Старые GPU и встроенные / встроенные чипы не настолько продвинуты, они часто поддерживают текстуры NPOT, но поддержка довольно медленная и неуклюжая;
Даже старые графические процессоры могут вообще отказаться принимать / отображать текстуры NPOT;
Могут быть артефакты окантовки, вызванные интерполяцией mip-карты, ваша текстура 25x25 может иметь черную полосу, куда были добавлены пиксели, чтобы заполнить ее размером 32x32.
PS Я не знаю наверняка о мобильных устройствах, там может быть еще больше ограничений относительно текстур POT.
Какие преимущества имеют текстуры не-степени двух, если таковые имеются?
Насколько я знаю, есть только 2 преимущества:
- Они занимают меньше места на жестком диске, если они не упакованы (когда упакованные пустые области дают очень мало надбавки)
- Вы можете сэкономить время на написании NPOT -> POT Converter. Он понадобится вам для релизной версии, но использовать текстуры NPOT для проектирования и создания прототипов интерфейса / моделей просто отлично
Существует ли большое количество пользователей настольных компьютеров, у которых нет карт, поддерживающих текстуры не-степени двух?
Насколько я знаю и проверено на ПК - да. Это включает в себя значительный процент графических процессоров с понижением скорости и незначительными ошибками, а также незначительный процент карт, которые вообще не поддерживают NPOT.