Час. Місяці. Може бути роки. Ви витратили свій час (багато часу), що б створити свою гру. Маленька вона або велика не має значення. Це ваша гра, і тепер ви хочете поділитися нею зі світом, і можливо стати відомим і багатим. Це ідеальний варіант: мистецтво це добре, і ви пишаєтеся вашими ідеями всередині гри. Вашої гри.
Але є останнє питання, яке ви повинні вирішити перед випуском. Чи не просте питання. Питання: частота кадрів в грі низька. Дуже низька. А це означає тільки одне: вам потрібно знайти спосіб, щоб виправити це. Ви повинні. І ви не уявляєте, як це зробити.
Не панікуйте: є простий трюк, який може допомогти вам. Вона називається «Атлас текстур».
Що таке атлас текстур?
![Використання атласу текстур для оптимізації вашої гри (використання) Використання атласу текстур для оптимізації вашої гри](https://images-on-off.com/images/170/ispolzovanieatlasateksturdlyaoptimizatsi-8ca5236a.png)
Написавши це, я відчув себе старим.
Повертаючись до важливих речей, сьогодні ми будемо говорити про текстури призначеного для користувача інтерфейсу (далі UI) і про всі структурах в грі.
У 3D грі, призначений для користувача інтерфейс, як правило, складається з 3D елементів (таких як площині або куби) з текстурами.
Ми вже згадували процес рендеринга: це дія, посредствам якого елементи в пам'яті фізично малюються на екрані. Це один з найскладніших і трудомістких процесів, які відбуваються в грі в режимі реального часу. Вітається будь-який спосіб скорочення часу витраченого на рендеринг; скорочення часу на етапі рендеринга означає більш високу частоту кадрів (тобто якщо ви дійдете до 60 кадрів в секунду, ви зможете рендерить зображення двічі, а потім думати про перенесення вашої гри на VR) або додати більше елементів в вашу гру і зробити її красивішою.
Одним із засобів, що використовуються для скорочення процесу рендеринга є атлас текстур: це щось більше, ніж зображення містить безліч текстур.
![Використання атласу текстур для оптимізації вашої гри (атласу) Використання атласу текстур для оптимізації вашої гри](https://images-on-off.com/images/170/ispolzovanieatlasateksturdlyaoptimizatsi-2255a35c.jpg)
Як працює атлас текстур.
Примітка: як уже згадувалося вище, в цій статті піде мова про текстурному атласі стосовно UI. Тим не менш, багато з концепцій пояснюється тут так само можуть бути застосовані до 3D моделям і їх структурам.
Текстурний атлас, як ми вже говорили, є набором текстур всередині одного зображення.
Атлас зазвичай асоціюється з файлом-дискриптор, який вказує грі, де текстури (за допомогою координат X і Y), для того, що б отримати потрібну текстуру.
Залежно від системи. яку ви будите використовувати для створення і управління атласами, вам будуть доступні різні опції, такі як відстань між елементами складовими атлас (зменшує ризик виникнення артефактів по краях текстури, викликаних перекриттям елементів), або можливість обертати елементи, що б оптимізувати простір всередині атласу (чим більше оптимізовано простір, тим більше зображень можна помістити в атлас).
Способи створення атласу текстур.
Існує багато способів створення атласу. Середовище розробки як правило, дозволяє створювати і управляти атласом; є так само безліч зовнішніх інструментів надають додаткові можливості.
Вибір, яку систему використовувати, залежить від ваших особистих переваг. Тут ми розберемо два варіанти: Sprite Packer вбудований в Unity і TexturePacker (окремий платний інструмент).
Щоб відкрити Sprite Packer, виберіть з меню Window> Sprite Packer.
Управління дуже просте: кнопка Pack використовується для створення одного або декількох атласів (це залежить від кількості зображень і розміру атласу, який хочете використовувати).
Тепер ви можете вибрати зображення, щоб побачити запропонований, в якому місці атласу воно знаходиться. Якщо ви додаєте або видаляєте зображення з атласу, ви повинні використовувати кнопку Repack, що б оновити атлас.
Для того, що б налаштувати Sprite Packer ви можете вибрати з меню Edit> Project Settings> Editor; тут ви можете відключити атлас, активувати його тільки для зборки гри йди тримати його включеним завжди.
Для отримання додаткової інформації про Sprite Packer, ви можете подивитися офіційне керівництво.
![Використання атласу текстур для оптимізації вашої гри (вашої) Використання атласу текстур для оптимізації вашої гри](https://images-on-off.com/images/170/ispolzovanieatlasateksturdlyaoptimizatsi-8069cc48.png)
Texture Packer
Texture Packer - автономний інструмент використовується для управління атласами.
Ви можете додати одну або кілька папок з вашого проекту і Texture Packer створить атлас.
Після цього, ви можете вибрати формат даних для експорту. Як ви можете бачити, є так само варіант «JSON for Unity». Це означає, що ви можете експортувати атлас для вашого Unity проекту. Але для того, що б використовувати цей формат, ви повинні встановити безкоштовне розширення з asset store.
Для отримання додаткової інформації про Texture Packer, ви можете прочитати офіційне керівництво.
![Використання атласу текстур для оптимізації вашої гри (Sprite Packer можете) Використання атласу текстур для оптимізації вашої гри](https://images-on-off.com/images/170/ispolzovanieatlasateksturdlyaoptimizatsi-d9fb6aa0.png)
Чому важливо користуватися атласами текстур?
Але чому це так важливо, зібрати кілька зображень в одне велике?
Давайте повернемося до процесу рендеринга: якщо кожен елемент призначеного для користувача інтерфейсу має окрему текстуру, потрібно викликати метод ортісовкі для кожного зображення. Це означає, що якщо в нашому інтерфейсі ми маємо значок серця (що представляє життя гравця) і значок зібраних монет, метод відтворення буде викликатися двічі.
На кожен виклик відтворення потрібен час, що робить процес рендеринга все довше і довше. Якщо є п'ять елементів призначеного для користувача інтерфейсу, а не два як в попередньому прикладі, метод відтворення буде викликаний п'ять разів.
Ви починаєте бачити в цьому сенс?
Більше викликів відтворення -> більше часу на етапі рендеринга -> менше кадрів в секунду -> гра з низькою частотою кадрів (з Дропана кадрами) або меншому кількістю елементів на екрані (що погано з візуальної частини).
Немає причин так робити, особливо для призначеного для користувача інтерфейсу.
Насправді, якщо текстури будуть зібрані разом, вони будуть отрендеріть в один прохід.
![Використання атласу текстур для оптимізації вашої гри (Sprite Packer можете) Використання атласу текстур для оптимізації вашої гри](https://images-on-off.com/images/170/ispolzovanieatlasateksturdlyaoptimizatsi-3d4c4e1f.jpg)
На закінчення, особливо якщо ви розробляєте гру під платформи де продуктивність дійсно важлива (наприклад під мобільні платформи):
- Ви повинні звернути увагу на кількість викликів методу відтворення: більше викликів означає більш високий час рендеринга (а це значить ризик зменшення частоти кадрів).
- Як правило кожен об'єкт з окремою текстурою може генерувати один виклик методу відтворення (є деякі винятки, особливо в разі 3D об'єктів).
- Один із способів знизити кількість викликів методу відтворення полягає в використанні атласу текстур.
- Текстурний атлас - це велика текстура з групою різних текстур.
- Всі об'єкти, які використовують один текстурний атлас генерують лише один виклик методу відтворення.
- Спеціально для UI текстур, використання текстурного атласу обов'язково для підвищення продуктивності.
І ... да прибуде з вами сила. І ваш код. Завжди.