Ottimizzare la tua esperienza è il processo di configurazione delle tue risorse e delle impostazioni di Studio per mantenere alto il frame rate e i livelli di prestazioni per i dispositivi con limitazioni di memoria e unità di elaborazione grafica (GPU). Questo processo garantisce che praticamente ogni utente abbia la stessa esperienza di gioco e visiva mentre visualizza il tuo ambiente.
Utilizzando il file Environment Art - Optimizing .rbxl come riferimento, questa sezione del curriculum di arte ambientale ti mostra come rivedere e configurare il tuo file place per una grafica ottimale, incluse le indicazioni su:
- Rivedere i parametri fisici e di rendering di ogni risorsa per confermare che preservino la memoria e le prestazioni del motore.
- Eliminare texture e geometrie eccessive o trasparenze che aumentano inutilmente la quantità di calcoli che il motore di Roblox deve eseguire per rendere le tue risorse.
Sebbene il motore di Roblox gestisca la maggior parte del lavoro di ottimizzazione per te, puoi assistere in questi sforzi di ottimizzazione utilizzando il Microprofiler per vedere dove ci vuole più tempo per rendere specifici frame. Utilizzando queste informazioni, puoi prendere decisioni informate su quali risorse necessitano della tua attenzione riguardo ai loro parametri o contenuti eccessivi. Analisi della scena è un altro potente strumento per controllare l'uso delle risorse.

Rivedere i parametri fisici e di rendering
In Assembla una libreria di risorse, hai appreso quanto sia importante impostare parametri fisici e di rendering che consentano alle tue risorse di mantenere la loro alta qualità visiva su dispositivi con limitazioni di memoria e GPU. Tuttavia, è comune, mentre costruisci il tuo ambiente, regolare questi parametri in base alla posizione contestuale e allo scopo di una risorsa all'interno della tua esperienza. Ad esempio, gran parte della vegetazione nell'ambiente finale del campione di laser tag proietta ombre nonostante un costo di prestazioni, poiché aggiunge realismo all'ambiente.
Quando modifichi i parametri fisici e di rendering, è utile, verso la fine del processo di sviluppo, rivedere tutti i parametri per vedere dove puoi ottimizzare un parametro mantenendo gli obiettivi estetici e i requisiti di gioco. Per illustrare, puoi disabilitare la proprietà BasePart.CastShadow per la vegetazione vicino ai bordi dell'area di gioco per risparmiare sulle prestazioni senza interferire con l'esperienza di gioco o visiva di un utente.


Eliminare contenuti non essenziali
Dopo aver rivisto i tuoi parametri fisici e di rendering, puoi rivedere le risorse stesse per vedere dove puoi eliminare contenuti non essenziali dall'esperienza che non influenzano il tuo gameplay, come texture identiche con diversi ID di risorse, geometrie complesse con molti vertici o trasparenze che si sovrappongono a seconda della vista della telecamera. Le sezioni seguenti descrivono cosa puoi fare per rivedere questo contenuto e perché aiuta gli sforzi di ottimizzazione.
Rimuovere texture duplicate
Mentre transiti tra lo sviluppo delle tue risorse e la costruzione del tuo ambiente, è comune iterare su mesh o texture mentre scopri ciò che è necessario per i tuoi obiettivi estetici o requisiti di gameplay. Se non converti le tue risorse in pacchetti, quando importi queste iterazioni in Studio, stai creando ID di risorsa unici che il motore di Roblox deve fare riferimento mentre rende le tue risorse all'interno dell'ambiente.
Ad esempio, se dovessi importare i seguenti due modelli di idrante in Studio separatamente, anche se sono esattamente identici nell'aspetto, il motore di Roblox li tratta come due oggetti con ID di risorsa unici. Più chiamate uniche il motore deve fare, maggiore sarà l'impatto su memoria e prestazioni. Per questo motivo, è importante confermare quando stai riutilizzando una risorsa più volte, che ogni istanza di quella risorsa utilizzi lo stesso ID di risorsa affinché il motore debba fare solo una singola chiamata per renderizzarla ripetutamente.

Ottimizzare la geometria
Se scopri di dover apportare ulteriori aggiustamenti per aumentare il frame rate su diversi dispositivi, è utile vedere dove puoi ottimizzare la tua geometria sia:
- Combinando gruppi di mesh in una singola risorsa.
- Riducendo il numero di poligoni delle risorse con complessità geometrica.
Espandendo questa prima tecnica, ogni risorsa unica nella tua esperienza rappresenta una chiamata di disegno sulla GPU in cui invia un segnale alla GPU per richiamare informazioni affinché il motore di Roblox possa rendere correttamente la risorsa. Più risorse uniche hai, più chiamate di disegno il sistema deve effettuare. Per questo motivo, se hai un gruppo di mesh che costituiscono un componente più grande nella tua esperienza, puoi raggrupparle insieme in strumenti di modellazione di terze parti per ridurre la necessità di più chiamate di disegno.
Per illustrare questo punto, l'ambiente finale del campione di laser tag raggruppa più parti e mesh per creare le grandi torri all'esterno dell'edificio. Se dovessi combinare tutti questi componenti individuali insieme, potresti farne un'unica risorsa con solo un ID di risorsa, e ridurre il numero di chiamate di disegno da 8 a 1. Tuttavia, è importante notare che questa tecnica rimuove la tua capacità di modificare liberamente le caratteristiche visive e fisiche di ciascun componente, come la sua posizione o il suo materiale.
Ad esempio, nell'immagine seguente, la torre sinistra rimane più risorse sotto un oggetto Model, mentre la torre destra è una singola risorsa. Puoi modificare ciascun componente della torre sinistra singolarmente, ma quando modifichi la torre destra, come cambiando il suo colore in nero, influisce sull'intero oggetto. Per questo motivo, è importante considerare questa tecnica solo verso la fine dello sviluppo del tuo ambiente, quando sai dove puoi migliorare le prestazioni senza influenzare i tuoi obiettivi estetici.

Espandendo la seconda tecnica, le risorse con complessità geometrica hanno più poligoni, il che significa che hanno più vertici che il motore deve calcolare mentre rende il loro aspetto visivo. Questo significa che le risorse con meno complessità e fedeltà sono meno costose da rendere, portando a un miglioramento sia delle prestazioni che della memoria.
Eliminare trasparenze sovrapposte
Per fornire un senso di realismo all'ambiente, l'ambiente finale del campione di laser tag include molte mesh con diversi livelli di trasparenza, come la vegetazione nello spazio esterno, vetro sulla segnaletica futuristica o corrimano dei vasi. Quando la telecamera visualizza più oggetti semi-trasparenti che sono davanti o dietro l'uno rispetto all'altro, il motore di Roblox deve rendere i pixel sovrapposti più volte per tener conto delle aree trasparenti. Questo processo è chiamato alto overdraw di trasparenza, e ha un impatto significativo sulle prestazioni.
Ad esempio, considera la seguente vista di un vaso nell'ambiente campione. Il motore deve rendere le aree trasparenti delle foglie tra la pianta più vicina alla telecamera e la pianta più vicina all'area esterna in strati, equivalenti a centinaia di migliaia di pixel sovrapposti. Per alleviare alcuni di questi impatti, è importante rivedere la disposizione di tutti gli oggetti semi-trasparenti nel tuo ambiente e assicurarti che non ci siano troppi luoghi in cui ci sono molti strati di sovrapposizione, specialmente in ampie aree dello schermo.


Quando hai finito di rivedere tutto il tuo contenuto per assicurarti che sia ottimale su più dispositivi, la tua esperienza è ora pronta per la pubblicazione!