Timpul. Luni. Poate de ani. V-ați petrecut timpul (o mulțime de timp) pentru a vă crea jocul. Micul sau mare nu contează. Acesta este jocul tău, iar acum vrei să îl împărtășești cu lumea și probabil să devii faimos și bogat. Aceasta este o opțiune ideală: arta este bună și sunteți mândră de ideile dvs. în interiorul jocului. Jocul tău.
Dar există o ultimă întrebare pe care trebuie să o decideți înainte de eliberare. Nu este o întrebare simplă. Întrebare: Rata cadrelor în joc este scăzută. Foarte scăzut. Și asta înseamnă doar un singur lucru: trebuie să găsești o cale de ao rezolva. Trebuie. Și nu aveți idee cum să faceți asta.
Nu intră în panică: există un truc simplu care vă poate ajuta. Se numește Atlas Textures.
Ce este textura atlasului?
Când am scris asta, m-am simțit vechi.
Revenind la lucruri importante, astăzi vom vorbi despre texturile interfeței utilizator (în continuare UI) și despre toate texturile din joc.
Într-un joc 3D, interfața cu utilizatorul, de regulă, constă din elemente 3D (cum ar fi planurile sau cuburile) cu texturi.
Am menționat deja procesul de redare: aceasta este o acțiune prin care elementele din memorie sunt desenate fizic pe ecran. Acesta este unul dintre procesele cele mai dificile și consumatoare de timp care apar în joc în timp real. Orice modalitate de a reduce timpul petrecut pentru redare este binevenită; reducerea timpului de redare pas înseamnă o rată de cadre mai mare (adică, dacă ajungi la 60 de cadre pe secundă, puteți face imaginea de două ori, și apoi gândiți transferul de joc la VR) sau pentru a adăuga mai multe elemente la jocul tău și să-l mai frumos.
Unul dintre instrumentele utilizate pentru a reduce procesul de redare este atlasul texturilor: este mai mult decât o imagine care conține multe texturi.
Cum funcționează atlasul texturilor.
Notă: după cum sa menționat mai sus, acest articol se va referi la atlasul texturii aplicat interfeței utilizator. Cu toate acestea, multe dintre conceptele explicate aici pot fi de asemenea aplicate modelelor 3D și texturilor lor.
Atlasul texturii, așa cum am spus, este un set de texturi într-o singură imagine.
Atlas, de obicei, asociat cu diskriptorom-fișier care indică un joc în care textura (folosind coordonatele X și Y) pentru care ar extrage textura dorită.
În funcție de sistem. pe care le veți folosi pentru a crea și administra atlase, veți avea acces diverse opțiuni, cum ar fi distanța dintre elementele constitutive ale atlasului (reduce riscul de artefacte la marginile texturii cauzate de suprapunerea elementelor), sau capacitatea de a roti elementele care ar optimiza spațiul din interiorul atlas (The mai mult spațiu este optimizat, mai multe imagini pot fi plasate în atlas).
Modalități de a crea un atlas de texturi.
Există multe modalități de a crea un atlas. Mediul de dezvoltare vă permite de obicei să creați și să gestionați un atlas; Există, de asemenea, multe instrumente externe care oferă oportunități suplimentare.
Alegerea sistemului pe care îl utilizați depinde de preferințele personale. Aici vom analiza două opțiuni: Sprite Packer built-in Unity și TexturePacker (un instrument plătit separat).
Pentru a deschide Sprite Packer, selectați din meniul Window> Sprite Packer.
Controlul este foarte simplu: butonul Pack se utilizează pentru a crea unul sau mai multe atlase (depinde de numărul de imagini și de dimensiunea atlasului pe care doriți să îl utilizați).
Acum puteți selecta o imagine pentru a vedea unde se găsește în atlas. Dacă adăugați sau eliminați imagini din atlas, trebuie să utilizați butonul Repack pentru a actualiza atlasul.
Pentru a personaliza pachetul Sprite puteți alege din meniul Editare> Setări proiect> Editor; aici puteți dezactiva atlasul, activați-l numai pentru a construi jocul sau păstrați-l mereu.
Pentru mai multe informații despre Sprite Packer, puteți vedea ghidul oficial.
Texture Packer
Texture Packer este un instrument independent folosit pentru a gestiona atlasurile.
Puteți adăuga unul sau mai multe foldere din proiectul dvs., iar Adaptorul de texturi va crea un atlas.
După aceasta, puteți selecta formatul de date pentru export. După cum puteți vedea, există și opțiunea "JSON for Unity". Aceasta înseamnă că puteți exporta un atlas pentru proiectul Unity. Dar, pentru a utiliza acest format, trebuie să instalați o extensie gratuită din magazinul de materiale.
Pentru mai multe informații despre pachetul de texturi, puteți citi ghidul oficial.
De ce este important să folosim texturi atlas?
Dar de ce este atât de important să colectăm mai multe imagini într-unul mai mare?
Să ne întoarcem la procesul de redare: în cazul în care fiecare element al interfeței cu utilizatorul are o textură separată ortisovki nevoie pentru a apela metoda pentru fiecare imagine. Aceasta înseamnă că dacă în interfața noastră avem o pictogramă a inimii (reprezentând viața jucătorului) și o icoană a monedelor colectate, metoda de desen va fi apelată de două ori.
Fiecare apel de redare necesită timp, ceea ce face procesul de redare mai lung și mai lung. Dacă există cinci elemente ale interfeței utilizator și nu două ca în exemplul anterior, metoda de desen va fi apelată de cinci ori.
Începi să vezi punctul în asta?
Mai trage apeluri -> mai mult timp în etapa de redare -> mai puține cadre pe secundă -> un joc cu o rată de cadre redusă (pentru a începe cadre cădere) sau mai mic decât numărul de elemente de pe ecran (ceea ce este rău cu partea vizuala).
Nu există niciun motiv pentru a face acest lucru, în special pentru interfața cu utilizatorul.
De fapt, dacă texturile sunt adunate, ele vor fi redate într-o singură trecere.
În concluzie, mai ales dacă dezvoltați un joc pentru platforme în care performanța este foarte importantă (de exemplu, pentru platformele mobile):
- Ar trebui să acordați atenție numărului de apeluri către metoda de desen: mai multe apeluri înseamnă un timp de redare mai mare (ceea ce înseamnă un risc de reducere a ratei de cadre).
- În mod obișnuit, fiecare obiect cu o textura separată poate genera un apel la metoda de randare (există câteva excepții, în special în cazul obiectelor 3D).
- O modalitate de a reduce numărul apelurilor la metoda de randare este de a folosi un atlas de texturi.
- Atlasul texturii este o textura mare cu un grup de texturi diferite.
- Toate obiectele care utilizează un singur atlas de textură generează doar un apel la metoda desenării.
- În special pentru texturile UI, este necesară utilizarea unui atlas de textură pentru a îmbunătăți performanța.
Și ... lasă puterea să vină cu tine. Și codul tău. Întotdeauna.