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