Le texture Physically-Based Rendering (PBR) ti consentono di rappresentare ombreggiature e illuminazione realistiche utilizzando più tipi di immagini di texture, o mappe, su un singolo oggetto. Combinare più mappe di texture può simulare più accuratamente colore, rugosità e riflettività in qualsiasi ambiente di illuminazione e può migliorare gli elementi visivi dei tuoi asset e dell'ambiente.


Varie applicazioni e flussi di lavoro sono disponibili per creare texture PBR. Puoi utilizzare questi durante le fasi di modellazione e texturizzazione della creazione di oggetti 3D personalizzati, a condizione che Roblox Studio supporti le specifiche mappe di texture che stai utilizzando.
Questa guida fornisce istruzioni su come impostare i tuoi oggetti mesh per utilizzare le mappe di texture PBR e descrive casi d'uso comuni e migliori pratiche per le mappe di texture PBR supportate da Roblox mappe di texture. Quando crei le tue superfici, vedere riferimenti ai materiali per valori materiali comuni, confronti di immagini e esempi di abbigliamento.
Abilitare l'aspetto della superficie
Puoi aggiungere texture PBR a qualsiasi MeshPart aggiungendo un oggetto SurfaceAppearance, che sovrascrive la texture assegnata originale. In generale, non puoi modificare le proprietà di SurfaceAppearance tramite script durante un gioco perché il motore richiede alcune operazioni di pre-elaborazione per visualizzare questi grafica. Simile all'aggiunta di una texture di base, ogni mappa di immagine texture deve puntare all'ID dell'asset immagine caricato appropriato.
Per abilitare l'aspetto della superficie per un MeshPart:
Nella finestra Explorer, passa con il mouse sopra il MeshPart e fai clic sul pulsante ⊕.
Inserisci un SurfaceAppearance dal menu contestuale.

Quando sei pronto per aggiungere le mappe texture all'oggetto SurfaceAppearance, puoi fare clic su ogni proprietà della mappa nella finestra Properties e inserire un ID asset.
Mappe di texture
Studio attualmente supporta 4 tipi di mappe di texture PBR: colore, normale, rugosità e metallicità. Ognuna di queste mappe corrisponde a un aspetto importante dell'aspetto superficiale dell'oggetto. Le mappe di texture cambiano solo l'aspetto visivo e non influenzano la geometria dell'oggetto MeshPart.
Vedi i seguenti esempi per una panoramica delle mappe di texture supportate da Roblox e risorse aggiuntive:
La proprietà ColorMap imposta i dati del colore della superficie, inclusa eventuale trasparenza presente nella mappa. Vedi colore (albedo) per ulteriori informazioni.



Colore (albedo)
La colore, o albedo, mappa determina il colore della tua texture e consiste principalmente in informazioni di colore con poca o nessuna informazione di illuminazione o testura. Per una personalizzazione aggiuntiva, puoi anche aggiungere trasparenza nella tua texture albedo aggiungendo opacità alla tua mappa immagine.
Modalità Alpha
Per oggetti che richiedono sezioni parziali o complete di trasparenza, come erba, foglie, pizzo o decalcomanie come sporco o sporcizia, puoi utilizzare varie modalità alpha per applicare trasparenza alla tua mappa colore. Se il formato della tua mappa immagine colore supporta i canali alpha, puoi applicare una mappa alpha in scala di grigi dove 0.0 è trasparente e 1.0 è opaco. Allo stesso modo, quando si utilizza un formato immagine come un .png, qualsiasi opacità sulla mappa colore si applica come trasparenza sull'asset.
Puoi applicare trasparenza in due comportamenti diversi impostando i seguenti valori AlphaMode:
- Overlay — Sovrappone la ColorMap sul MeshPart.Color sottostante. Le mappe colore che utilizzano la modalità overlay rivelano il colore di base della mesh ovunque sia presente la trasparenza. Questa è l'impostazione predefinita.
- Trasparenza — Rimuove la mesh visibile in base alla trasparenza nella ColorMap. Questo rende la mesh trasparente e non rivela il colore originale della mesh ogni volta che è presente trasparenza.
Opaco
Puoi utilizzare la modalità Enum.AlphaMode.Opaque per ignorare completamente il canale alpha della ColorMap. In questo caso, il valore alpha è ritenuto 1 (completamente opaco).
Il seguente esempio dimostra come funziona la modalità Opaque utilizzando un oggetto bianco come riferimento:


Overlay
Puoi utilizzare Enum.AlphaMode.Overlay per rivelare sezioni del colore originale della mesh. Poiché le aree trasparenti della mappa colore espongono il colore sottostante, puoi progettare una mappa texture unica che rivela parzialmente o completamente la proprietà Color della mesh per toni della pelle personalizzati o altre situazioni con colori unici.
Il seguente esempio dimostra come funziona la modalità Overlay utilizzando un riferimento a una sfera bianca:


Il seguente esempio utilizza la modalità Overlay per personaggi personalizzati, rivelando il tono della pelle originale del personaggio:


Vedi tono della pelle personalizzato per ulteriori dettagli su come ottimizzare un overlay per la pelle e applicazioni simili.
Trasparenza
Puoi utilizzare la modalità Enum.AlphaMode.Transparency per creare oggetti complessi o estremamente fini, come pizzo o rete, rimuovendo parti visibili della mesh come alternativa alla modellazione della geometria della mesh. Poiché ciò non influisce sulla geometria dell'oggetto mesh, ciò può consentirti di creare oggetti dettagliati senza l'impatto sulle prestazioni di un modello mesh articolato.
Il seguente esempio dimostra come una parziale e una piena trasparenza in questa modalità rimuovano visivamente sezioni della mesh:



Ci sono due risultati della modalità Transparency, a seconda di se il MeshPart.Transparency è impostato su 0 o almeno 0.02, anche se la precisione numerica può portare a piccoli valori come 0.01 a innescare la trasparenza opaca.
- Quando l'alpha viene utilizzato per ritagliare la forma di oggetti per lo più opachi con bordi netti come fogliame, tessuti di pizzo e reti, impostare il MeshPart.Transparency su 0. Quando parti della superficie sono completamente opache, il motore Roblox può renderizzarle con una corretta occlusione basata sulla profondità. Le superfici opache funzionano anche generalmente meglio con effetti basati sulla profondità come DepthOfFieldEffect, rifrazione del vetro e dell'acqua, e riflessione dell'acqua.
- Quando l'alpha viene utilizzato per aggiungere dettagli a oggetti semi-trasparenti o oggetti con gradienti di trasparenza liscia, impostare il MeshPart.Transparency su almeno 0.02. Questo migliora la qualità della fusione per oggetti come finestre sporche e piume con bordi morbidi, ma non funzionerà con tutti gli effetti.
TintMask
Puoi utilizzare la modalità Enum.AlphaMode.TintMask per applicare una colorazione SurfaceAppearance.Color a sezioni selettive di una superficie. La colorazione è più forte dove il canale alpha è completamente visibile e non viene applicata dove il canale alpha è trasparente.

Colorazione
Puoi applicare una tinta alla tua mappa colore modificando la proprietà SurfaceAppearance.Color. La colorazione non influisce sulle prestazioni e puoi risparmiare memoria riutilizzando una singola mappa colore con diverse tinte. Utilizza la colorazione per creare variazioni a basso costo tra le tue texture PBR MeshPart o per modificare programmaticamente i colori delle tue superfici PBR in tempo reale.



La colorazione SurfaceAppearance.Color si applica come un moltiplicatore, quindi l'aspetto finale è una funzione di Color3 (colore texel) moltiplicato per SurfaceAppearance.Color. Ciò significa che la creazione della tua originale SurfaceAppearance.ColorMap in colori grigi vicino al bianco crea l'effetto di colorazione più forte quando questa proprietà viene applicata.
La colorazione si applica solo alla SurfaceAppearance.ColorMap e non al MeshPart.Color. Puoi continuare a utilizzare i canali alpha quando applichi trasparenza.
Quando SurfaceAppearance.AlphaMode è impostato su Overlay e è presente un canale alpha, il sottostante MeshPart.Color viene rivelato e la colorazione SurfaceAppearance.Color si applica solo alla mappa colore SurfaceAppearance visibile.
Quando SurfaceAppearance.AlphaMode è impostato su TintMask e è presente un canale alpha, il canale alpha controlla la quantità di colorazione SurfaceAppearance.Color. La colorazione è più forte dove il canale alpha è completamente visibile e non viene applicata dove il canale alpha è trasparente.

Normale
La mappa normale, o superficie, aggiunge profondità di texture alla tua superficie e si comporta in modo simile a una mappa di altezza. Di conseguenza, l'effetto può svanire o intensificarsi a seconda dell'angolo di visualizzazione e dell'ambiente di illuminazione. Quando una mappa normale non è presente, il valore è impostato su 0.0.
Nella figura seguente, puoi passare tra il riferimento di mesh e il riferimento della mappa per confronti dei valori delle mappe normali:



I canali R, G e B dell'immagine corrispondono rispettivamente ai componenti X, Y e Z del vettore di superficie locale. Un'immagine uniforme di colore [127, 127, 255] si traduce in una mappa normale completamente piatta. Roblox supporta solo mappe normali OpenGL formato - Tangent Space.
Le mappe normali influiscono notevolmente sulla superficie visiva di una mesh e possono accentuare giunzioni scomode nella tua texture. Ogni volta che è possibile, nascondi le giunzioni della tua texture per evitare problemi visivi con la tua mesh.
Rugosità
Le mappe di rugosità, o microsuperficie, determinano come la luce viene distribuita sulla superficie del tuo modello. Quando la rugosità è a 0.0, la superficie non diffonde affatto la luce, risultando in un riflesso e una lucentezza molto più nitidi sul tuo materiale. A 1.0, la luce e i riflessi si disperdono uniformemente sul modello risultando in una superficie opaca e meno riflettente.
La rugosità può impattare quanto un oggetto è riflettente da angoli diversi, riferito come effetto Fresnel. Vedi fresnel per ulteriori dettagli e migliori pratiche per mantenere un comportamento riflettente coerente.
La figura seguente mostra confronti di vari valori delle mappe di rugosità:



Fresnel
Fresnel si riferisce alla quantità di riflessione di una superficie in riferimento all'angolo di visualizzazione corrente. L'elaborazione Fresnel di Studio mira a raggiungere un'accuratezza fisica del mondo reale, anche se potresti ottenere un contributo speculare inaspettato a determinati angoli anche con superfici ruvide. In alcuni casi, puoi compensare rendendo la tua mappa di rugosità intorno a 0.1 più ruvida per ottenere una risposta luminosa coerente con i tuoi materiali.
Anche se Roblox rende accuratamente questo effetto di illuminazione, la luminosità e la riflettività di una superficie potrebbero non rispondere in modo coerente tra il software di creazione del contenuto della tua texture, come Substance Painter, e Studio. Vedi esempi di abbigliamento per differenze nella resa tra applicazioni.
Metallicità
La metallicità determina la riflettività di una superficie. I valori di metallicità vanno da 0.0 a 1.0. Roblox imposta il valore predefinito a 0.0 se non è presente una mappa di metallicità.
Vedi la figura seguente per confronti di vari valori delle mappe di metallicità:



Diversi renderer PBR utilizzano vari flussi di lavoro per elaborare la riflettività. Studio utilizza solo il flusso di lavoro della metallicità che determina se un materiale è non metallico o metallico, a volte denominato isolante o conducente.
Nella maggior parte dei casi, dovresti impostare questo valore su 0.0 (non metallico) o 1.0 (metallico). Puoi utilizzare valori di metallicità parziali quando crei superfici più insolite con proprietà riflettenti moderate, come satin o seta. Questa pratica può falsificare sottilmente i riflessi nel materiale per evidenziare il colore della mappa colore/albedo rispetto ai colori riflessi nell'ambiente.

