Використання атласу текстур для оптимізації вашої гри

Час. Місяці. Може бути роки. Ви витратили свій час (багато часу), що б створити свою гру. Маленька вона або велика не має значення. Це ваша гра, і тепер ви хочете поділитися нею зі світом, і можливо стати відомим і багатим. Це ідеальний варіант: мистецтво це добре, і ви пишаєтеся вашими ідеями всередині гри. Вашої гри.

Але є останнє питання, яке ви повинні вирішити перед випуском. Чи не просте питання. Питання: частота кадрів в грі низька. Дуже низька. А це означає тільки одне: вам потрібно знайти спосіб, щоб виправити це. Ви повинні. І ви не уявляєте, як це зробити.

Не панікуйте: є простий трюк, який може допомогти вам. Вона називається «Атлас текстур».

Що таке атлас текстур?

Використання атласу текстур для оптимізації вашої гри

Написавши це, я відчув себе старим.

Повертаючись до важливих речей, сьогодні ми будемо говорити про текстури призначеного для користувача інтерфейсу (далі UI) і про всі структурах в грі.

У 3D грі, призначений для користувача інтерфейс, як правило, складається з 3D елементів (таких як площині або куби) з текстурами.

Ми вже згадували процес рендеринга: це дія, посредствам якого елементи в пам'яті фізично малюються на екрані. Це один з найскладніших і трудомістких процесів, які відбуваються в грі в режимі реального часу. Вітається будь-який спосіб скорочення часу витраченого на рендеринг; скорочення часу на етапі рендеринга означає більш високу частоту кадрів (тобто якщо ви дійдете до 60 кадрів в секунду, ви зможете рендерить зображення двічі, а потім думати про перенесення вашої гри на VR) або додати більше елементів в вашу гру і зробити її красивішою.

Одним із засобів, що використовуються для скорочення процесу рендеринга є атлас текстур: це щось більше, ніж зображення містить безліч текстур.

Використання атласу текстур для оптимізації вашої гри

Як працює атлас текстур.

Примітка: як уже згадувалося вище, в цій статті піде мова про текстурному атласі стосовно UI. Тим не менш, багато з концепцій пояснюється тут так само можуть бути застосовані до 3D моделям і їх структурам.

Текстурний атлас, як ми вже говорили, є набором текстур всередині одного зображення.

Атлас зазвичай асоціюється з файлом-дискриптор, який вказує грі, де текстури (за допомогою координат X і Y), для того, що б отримати потрібну текстуру.

Залежно від системи. яку ви будите використовувати для створення і управління атласами, вам будуть доступні різні опції, такі як відстань між елементами складовими атлас (зменшує ризик виникнення артефактів по краях текстури, викликаних перекриттям елементів), або можливість обертати елементи, що б оптимізувати простір всередині атласу (чим більше оптимізовано простір, тим більше зображень можна помістити в атлас).

Способи створення атласу текстур.

Існує багато способів створення атласу. Середовище розробки як правило, дозволяє створювати і управляти атласом; є так само безліч зовнішніх інструментів надають додаткові можливості.

Вибір, яку систему використовувати, залежить від ваших особистих переваг. Тут ми розберемо два варіанти: Sprite Packer вбудований в Unity і TexturePacker (окремий платний інструмент).

Щоб відкрити Sprite Packer, виберіть з меню Window> Sprite Packer.

Управління дуже просте: кнопка Pack використовується для створення одного або декількох атласів (це залежить від кількості зображень і розміру атласу, який хочете використовувати).

Тепер ви можете вибрати зображення, щоб побачити запропонований, в якому місці атласу воно знаходиться. Якщо ви додаєте або видаляєте зображення з атласу, ви повинні використовувати кнопку Repack, що б оновити атлас.

Для того, що б налаштувати Sprite Packer ви можете вибрати з меню Edit> Project Settings> Editor; тут ви можете відключити атлас, активувати його тільки для зборки гри йди тримати його включеним завжди.

Для отримання додаткової інформації про Sprite Packer, ви можете подивитися офіційне керівництво.

Використання атласу текстур для оптимізації вашої гри

Texture Packer

Texture Packer - автономний інструмент використовується для управління атласами.

Ви можете додати одну або кілька папок з вашого проекту і Texture Packer створить атлас.

Після цього, ви можете вибрати формат даних для експорту. Як ви можете бачити, є так само варіант «JSON for Unity». Це означає, що ви можете експортувати атлас для вашого Unity проекту. Але для того, що б використовувати цей формат, ви повинні встановити безкоштовне розширення з asset store.

Для отримання додаткової інформації про Texture Packer, ви можете прочитати офіційне керівництво.

Використання атласу текстур для оптимізації вашої гри

Чому важливо користуватися атласами текстур?

Але чому це так важливо, зібрати кілька зображень в одне велике?

Давайте повернемося до процесу рендеринга: якщо кожен елемент призначеного для користувача інтерфейсу має окрему текстуру, потрібно викликати метод ортісовкі для кожного зображення. Це означає, що якщо в нашому інтерфейсі ми маємо значок серця (що представляє життя гравця) і значок зібраних монет, метод відтворення буде викликатися двічі.

На кожен виклик відтворення потрібен час, що робить процес рендеринга все довше і довше. Якщо є п'ять елементів призначеного для користувача інтерфейсу, а не два як в попередньому прикладі, метод відтворення буде викликаний п'ять разів.

Ви починаєте бачити в цьому сенс?

Більше викликів відтворення -> більше часу на етапі рендеринга -> менше кадрів в секунду -> гра з низькою частотою кадрів (з Дропана кадрами) або меншому кількістю елементів на екрані (що погано з візуальної частини).

Немає причин так робити, особливо для призначеного для користувача інтерфейсу.

Насправді, якщо текстури будуть зібрані разом, вони будуть отрендеріть в один прохід.

Використання атласу текстур для оптимізації вашої гри

На закінчення, особливо якщо ви розробляєте гру під платформи де продуктивність дійсно важлива (наприклад під мобільні платформи):

  • Ви повинні звернути увагу на кількість викликів методу відтворення: більше викликів означає більш високий час рендеринга (а це значить ризик зменшення частоти кадрів).
  • Як правило кожен об'єкт з окремою текстурою може генерувати один виклик методу відтворення (є деякі винятки, особливо в разі 3D об'єктів).
  • Один із способів знизити кількість викликів методу відтворення полягає в використанні атласу текстур.
  • Текстурний атлас - це велика текстура з групою різних текстур.
  • Всі об'єкти, які використовують один текстурний атлас генерують лише один виклик методу відтворення.
  • Спеціально для UI текстур, використання текстурного атласу обов'язково для підвищення продуктивності.

І ... да прибуде з вами сила. І ваш код. Завжди.

Схожі статті