Rendering Basato sulla Fisica (PBR) texture ti permettono di rappresentare l'ombreggiatura e l'illuminazione realistica utilizzando vari tipi di immagini texture, o mappe, su un singolo oggetto. Combinare più mappe texture può simulare in modo più accurato colore, ruvidezza e riflessione in qualsiasi ambiente di illuminazione e può migliorare gli elementi visivi delle tue risorse e dell'ambiente.


Sono disponibili varie applicazioni e flussi di lavoro 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 texture che stai utilizzando.
Questa guida fornisce istruzioni per configurare i tuoi oggetti mesh per utilizzare le mappe texture PBR e descrive casi d'uso comuni e migliori pratiche per le PBR supportate da Roblox mappe texture. Quando crei le tue superfici, vedere riferimenti ai materiali per valori di materiale comuni, confronti di immagini ed esempi di abbigliamento.
Abilita l'aspetto della superficie
Puoi aggiungere texture PBR a qualsiasi MeshPart aggiungendo un oggetto SurfaceAppearance che sovrascrive la texture originale assegnata. In generale, non puoi modificare le proprietà di SurfaceAppearance tramite script durante un gioco perché il motore richiede alcune pre-elaborazioni per visualizzare queste grafiche. Simile all'aggiunta di una texture di base, ogni mappa immagine texture deve puntare all'ID asset immagine caricato appropriato.
Per abilitare l'aspetto della superficie per un MeshPart:
Nella finestra Esplora, passa il mouse sopra il MeshPart e fai clic sul pulsante ⊕.
Inserisci un SurfaceAppearance dal menu contestuale.

Quando sei pronto ad aggiungere mappe texture all'oggetto SurfaceAppearance, puoi fare clic su ciascuna proprietà della mappa nella finestra Proprietà e inserire un ID asset.
Mappe texture
Studio attualmente supporta 5 tipi di mappe texture PBR: colore, normale, ruvidezza, metallicità e emissivo. Ognuna di queste mappe corrisponde a un aspetto importante dell'aspetto superficiale dell'oggetto. Le mappe texture cambiano solo l'aspetto visivo e non influenzano la geometria dell'oggetto MeshPart.
Vedi i seguenti esempi per una panoramica delle mappe texture supportate da Roblox e risorse aggiuntive:
La proprietà ColorMap imposta i dati di colore della superficie, inclusa qualsiasi 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 di informazioni di colore con poca o nessuna informazione di illuminazione o testurizzazione. Per ulteriori personalizzazioni, puoi anche aggiungere trasparenza nella tua texture albedo aggiungendo opacità alla tua mappa immagine.
Modalità Alfa
Per oggetti che richiedono sezioni parziali o complete di trasparenza, come erba, foglie, pizzo, o decalcomanie come sporco o grunge, puoi usare varie modalità alfa per applicare trasparenza alla tua mappa colore. Se il formato immagine della tua mappa colore supporta canali alfa, puoi applicare una mappa alfa in scala di grigi dove 0.0 è trasparente e 1.0 è opaco. Allo stesso modo, quando utilizzi un formato immagine come un .png, qualsiasi opacità nella mappa colore si applica come trasparenza all'asset.
Puoi applicare la trasparenza in due comportamenti diversi impostando i seguenti valori di 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 la trasparenza.
Opaco
Puoi utilizzare la modalità Enum.AlphaMode.Opaque per ignorare del tutto il canale alfa della ColorMap. In questo caso, il valore alfa è presunto essere 1 (completamente opaco).
L'esempio seguente dimostra come funziona la modalità Opaque utilizzando un oggetto blu 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 di pelle personalizzati o altre situazioni con colori unici.
L'esempio seguente dimostra come funziona la modalità Overlay utilizzando un riferimento di sfera blu chiaro:
L'esempio seguente utilizza la modalità Overlay per personaggi personalizzati, rivelando il tono di pelle originale del personaggio:


Vedi tonalità di pelle personalizzata 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 reti, rimuovendo parti visibili della mesh come alternativa alla scolpitura della geometria della mesh. Poiché questo non influisce sulla geometria dell'oggetto mesh, questo ti consente di creare oggetti dettagliati senza l'impatto sulle prestazioni di un modello mesh intricato.
L'esempio seguente dimostra come una trasparenza parziale e totale in questa modalità rimuove visivamente sezioni della mesh:



Ci sono due possibili risultati della modalità Transparency, a seconda che MeshPart.Transparency sia impostato a 0 o almeno 0.02, sebbene la precisione numerica possa risultare in piccoli valori come 0.01 che attivano la trasparenza opaca.
- Quando l'alfa è utilizzata per ritagliare la forma di oggetti per lo più opachi con bordi netti come fogliame, tessuto pizzi e reti, imposta il MeshPart.Transparency a 0. Quando parti della superficie sono completamente opache, il motore Roblox può renderizzarli con una corretta occlusione basata sulla profondità. Le superfici opache funzionano anche generalmente meglio con effetti basati sulla profondità come DepthOfFieldEffect, rifrazione di vetro e acqua, e riflessione dell'acqua.
- Quando l'alfa è utilizzata per aggiungere dettagli a oggetti semi-trasparenti o oggetti con gradienti morbidi di trasparenza, imposta il MeshPart.Transparency a almeno 0.02. Questo migliora la qualità della miscelazione per oggetti come finestre sporche e piume a bordi morbidi, ma non funzionerà con tutti gli effetti.
Maschera di tinta
Puoi usare la modalità Enum.AlphaMode.TintMask per applicare la tinteggiatura SurfaceAppearance.Color a aree selettive di una superficie. La tinteggiatura è più forte dove il canale alfa è completamente visibile e non applicata dove il canale alfa è trasparente.

Tinteggiatura colore
Puoi applicare una tinta alla tua mappa colore modificando la proprietà SurfaceAppearance.Color. La tinteggiatura non influisce sulle prestazioni e puoi risparmiare memoria riutilizzando una sola mappa colore con diverse tinte. Usa la tinteggiatura per creare variazioni a costo ridotto tra i tuoi texture PBR MeshPart o per modificare programmaticamente i colori superficiali PBR in tempo reale.



La tinteggiatura SurfaceAppearance.Color si applica come un moltiplicatore, quindi l'aspetto finale è una funzione di Color3 (colore texel) moltiplicato per SurfaceAppearance.Color. Questo significa che creazione della tua originale SurfaceAppearance.ColorMap in colori grigi quasi bianchi genera il più forte effetto di tinteggiatura quando questa proprietà è applicata.
La tinteggiatura si applica solo alla SurfaceAppearance.ColorMap e non al MeshPart.Color. Puoi continuare a utilizzare canali alfa quando applichi trasparenza.
Quando SurfaceAppearance.AlphaMode è impostato su Overlay e un canale alfa è presente, il sottostante MeshPart.Color è rivelato e la tinteggiatura SurfaceAppearance.Color si applica solo alla mappa colore SurfaceAppearance visibile.
Quando SurfaceAppearance.AlphaMode è impostato su TintMask e un canale alfa è presente, il canale alfa controlla la quantità di tinteggiatura SurfaceAppearance.Color. La tinteggiatura è più forte dove il canale alfa è completamente visibile e non applicata dove il canale alfa è 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.
Nella figura seguente, puoi alternare tra il riferimento mesh e il riferimento mappa per confronti dei valori della mappa normale:



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 le mappe normali OpenGL format - Tangent Space.
Le mappe normali influenzano in modo evidente la superficie visiva di una mesh e possono accentuare cuciture scomode nella tua texture. Ogni volta che è possibile, mantieni le cuciture della tua texture nascoste per evitare problemi visivi con la tua mesh.
Ruvidezza
Le mappe ruvidezza, o microsuperficie, determinano come la luce si diffonde sulla superficie del tuo modello. Quando la ruvidezza è al 0%, la superficie non disperde affatto la luce, risultando in un riflesso e lucentezza molto più nitidi e luminosi sul tuo materiale. Al 100%, la luce e i riflessi si disperdono uniformemente sul modello risultando in una superficie opaca simile a un materasso.
La figura seguente mostra confronti di vari valori di mappa di ruvidezza:



La ruvidezza può influenzare quanto un oggetto è riflettente a diversi angoli, noto come effetto Fresnel. L'elaborazione fresnel di Studio mira ad 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 aumentando il valore della mappa di ruvidezza di circa 0.1 per ottenere una risposta di illuminazione 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 tuo software di creazione di contenuti texture, come Substance Painter, e Studio. Vedi esempi di abbigliamento per le differenze nel rendering tra le applicazioni.
Metallicità
La metallicità determina la riflettività di una superficie. Nella maggior parte dei casi, dovresti impostare questo valore a 0% (non metallico) o 100% (metallo), anche se puoi utilizzare valori di metallicità parziali quando crei superfici con proprietà riflettenti moderate come satin o seta. Questa pratica può falsificare sottilmente i riflessi nel materiale per evidenziare il colore dalla mappa colore/albedo rispetto ai colori riflessi nell'ambiente.
Vedi la figura seguente per confronti di vari valori della mappa di metallicità:



Diversi renderer PBR utilizzano vari flussi di lavoro per elaborare la riflettività. Studio utilizza solo il flusso di lavoro metallicità che determina se un materiale è non metallico o metallico, a volte riferito come un isolante o conduttore.
Maschera Emissiva
Una texture contenuto in scala di grigi EmissiveMaskContent applica una maschera emissiva sulla superficie. Questo ti consente di utilizzare una texture per controllare l'emissività per un maggiore controllo artistico rispetto al materiale Neon, tutto o niente, e consente di creare effetti luminosi dettagliati come testi illuminati, armature futuristiche o creature bioluminescenti.
La proprietà associata EmissiveTint determina il colore della tinta per il contributo emissivo, e EmissiveStrength determina la forza del contributo emissivo.







