Texture, file e pack · 3 min di lettura

Come aggiungere mipmap a un YTD (texture rosa o sfarfallanti da vicino)

Leggi in: English · Español · Français · Deutsch · Português · Polski · Türkçe · Русский

Una texture di solito arriva con mipmap: copie più piccole di se stessa, ciascuna la metà della precedente. Il gioco disegna la texture intera da vicino e le copie più piccole da lontano, il che costa meno e appare più liscio. Alcuni esportatori salvano le texture solo al loro livello a dimensione piena, e in FiveM questo può apparire come un modello rosa o sfocato da vicino, o come un modello che sfarfalla da lontano.

Perché una texture senza mipmap crea problemi

Quasi tutto nel gioco ha i mipmap. Abbiamo esaminato 1.500 file .ytd di GTA V: delle loro 3.534 texture di colore, solo 65 hanno un unico livello, e solo 2 di queste sono più grandi di 64 pixel, entrambe emblemi di veicoli. Le texture che il gioco tiene a un solo livello lo fanno apposta: tavolozze di tinta, render target degli script (script_rt_…), mappe dell'acqua, emblemi e alcune immagini dell'interfaccia.

Una texture senza livelli più piccoli non dà al gioco modo di ridurla. Il risultato più probabile, quando la memoria di texture scarseggia, è che appaia rosa o sfocata, o che compaia all'improvviso da vicino, e che sfarfalli da lontano. È ciò che abbiamo visto sul ped addon di un cliente: rosa da vicino in gioco, con tutte le texture al loro posto. La sua texture del corpo era una DXT5 2048 × 2048 salvata con un solo livello.

I mipmap costano circa un terzo di memoria in più rispetto al solo livello a dimensione piena. È il prezzo normale, e tutte le texture del gioco lo pagano.

Trova le texture senza mipmap

Tre strumenti le elencano, con la stessa regola (un solo livello, più grande di 64 pixel, e non uno dei tipi che il gioco tiene a un solo livello):

Ricostruiscile con i mipmap

  1. Trascina il .ytd nell'Asset Optimizer, insieme ai modelli che lo usano (.ydr, .yft, .ydd). Con i modelli presenti, le normal map vengono riconosciute da come i modelli le usano.
  2. Lascia spuntato Add missing mipmaps (aggiungi i mipmap mancanti): è attivo per impostazione predefinita.
  3. Scegli una Largest texture size (dimensione massima della texture). Le texture sopra quella dimensione vengono riportate a essa; le altre mantengono la loro (arrotondata a una potenza di due) e ricevono solo i mipmap.
  4. Clicca su Download the lighter files (.zip) e rimetti i file in stream/ con gli stessi nomi.
  5. Leggi What was done to each texture (cosa è stato fatto a ogni texture): una riga per texture, con dimensione e formato prima e dopo.
Asset Optimizer dopo un'esecuzione: la tabella dei file con la dimensione finale e le note su ogni texture, come una DXT5 2048 senza mipmap rifatta a 1024 con 9 mipmap
Un .ytd di prova con sei texture salvate senza mipmap, dopo l'esecuzione: ciascuna rifatta con i suoi livelli.

Ogni texture ricostruita riceve tutti i livelli fino a 4 pixel. Le texture di colore compresse diventano DXT1 quando nessun pixel è trasparente e DXT5 quando ne sono alcuni (quelle non compresse restano non compresse); le normal map restano normal map, rinormalizzate a ogni livello. Tavolozze, render target e gli altri tipi a un solo livello non vengono toccati, e i formati che lo strumento non sa ricostruire (BC7, per esempio) restano come sono, con una nota.

Il Texture Editor non è lo strumento per questo: riduce e sostituisce le texture, ma non aggiunge mipmap a una texture che lasci com'è. Una texture sostituita lì torna con i mipmap.

Controllalo in gioco

I giocatori conservano il .ytd vecchio finché non si riconnettono, quindi rientra nel server invece di riavviare soltanto la risorsa. Poi guarda il modello da vicino e da lontano.

Domande

Ogni texture dovrebbe avere mipmap?
Quasi tutte quelle di GTA V ce li hanno. Le eccezioni sono le texture che il gioco tiene a un livello di proposito (tavolozze di tinta, render target degli script, mappe dell'acqua), e gli strumenti le lasciano stare.
I mipmap rendono i miei file più grandi?
Di circa un terzo. Se questo porta un file oltre l'avviso di 16 MiB di FiveM, abbassa nello stesso momento la dimensione massima della texture.

Lo strumento per questo

Asset Optimizer

Trascina i tuoi file di stream: le texture senza mipmap li riottengono, quelle troppo grandi vengono riportate alla dimensione che scegli, e ogni file mantiene il suo nome.

Apri Asset Optimizer

Utile anche qui: Missing Textures Check · Model Inspector

Ogni strumento è gratis da provare, con 5 esportazioni al giorno. Accedi con Discord per usarli.