物理基礎渲染(PBR)紋理允許您通過在單一物體上使用多種類型的紋理圖像或 貼圖,來表現現實的陰影和照明。結合多個紋理貼圖可以更準確地模擬顏色、粗糙度和反射率,無論在任何照明環境下,都能增強您資產和環境的視覺元素。


有多種應用和工作流程可用於創建 PBR 紋理。您可以在自定義 3D 物體創建的建模和紋理化階段使用這些,前提是 Roblox Studio 支持 您正在使用的特定紋理貼圖。
本指南提供有關 設定 您的網格物體以使用 PBR 紋理貼圖的指導,並描述了 Roblox 支持的 PBR 紋理貼圖 的常見使用案例和最佳實踐。在創建您自己的表面時,請參閱 材料參考 以獲取常見材料值、圖像比較和服裝範例。
啟用表面外觀
您可以通過添加 SurfaceAppearance 物件將 PBR 紋理添加到任何 MeshPart,這會覆蓋原來分配的紋理。一般而言,您不能在遊戲中通過腳本修改 SurfaceAppearance 屬性,因為引擎需要一些前期處理才能顯示這些圖形。與添加基本紋理類似,每個紋理圖像貼圖必須指向相應的已上傳圖像資產 ID。
要為 MeshPart 啟用表面外觀:
在 探險者 窗口中,將鼠標懸停在 MeshPart 上,然後點擊 ⊕ 按鈕。
紋理貼圖
Studio 目前支持 5 種 PBR 紋理貼圖:顏色、法線、粗糙度、金屬度 和 自發光。每種貼圖都對物體的表面外觀的重要方面做出相應的影響。紋理貼圖僅變更視覺外觀,並不影響 MeshPart 物件的幾何形狀。
請參閱以下範例,以了解 Roblox 支持的紋理貼圖和其他資源的概述:
ColorMap 屬性設置了表面的顏色數據,包括貼圖中存在的任何透明度。請參見 顏色 (albedo) 以獲取其他資訊。



顏色(albedo)
顏色或albedo貼圖決定了您的紋理顏色,並主要由顏色信息組成,幾乎不包含照明或紋理信息。為了進一步自定義,您還可以通過在您的 albedo 紋理中添加透明度來添加 透明性。
Alpha 模式
對於需要部分或完全透明的物體,如草、葉子、蕾絲或污垢或污漬的貼圖,您可以使用各種 alpha 模式 為您的顏色貼圖應用透明度。如果您的顏色貼圖圖像格式支持 alpha 通道,您可以應用灰階 alpha 貼圖,在該貼圖中 0.0 是透明的,1.0 是不透明的。類似地,當使用例如 .png 的圖像格式時,顏色貼圖上的任何不透明度將作為資產上的透明度。
您可以通過設置以下 AlphaMode 值來以兩種不同的行為應用透明度:
- 透明度 — 根據在 ColorMap 中的透明度移除可視網格。這使網格透明,當存在透明度時不會顯示原始網格顏色。
不透明
您可以使用 Enum.AlphaMode.Opaque 模式完全忽略 ColorMap 的 alpha 通道。在這種情況下,假設 alpha 值為 1 (完全不透明)。
以下範例演示了使用藍色物體作為參考的 Opaque 模式的工作原理:
覆蓋
您可以使用 Enum.AlphaMode.Overlay 來揭示網格的原始顏色部分。由於顏色貼圖中的透明區域暴露了底下的顏色,您可以設計一個獨特的紋理貼圖,部分或完全顯示網格的 Color 屬性,以適應自定義膚色或其他具有獨特顏色的情況。
以下範例演示了使用淺藍色球體參考的 Overlay 模式的工作原理:
以下範例使用 Overlay 模式來處理自定義角色,顯示角色的原始膚色:


請參見 自定義膚色 獲取有關為皮膚和類似應用優化覆蓋的其他資訊。
透明度
您可以使用 Enum.AlphaMode.Transparency 模式來創建複雜或極其精細的物體,例如蕾絲或網狀物,通過去除可見的網格部分作為雕刻網格幾何形狀的替代方案。由於這不會影響網格物體的幾何形狀,因此可以讓您創造詳細的物體,而不會對性能造成複雜模型的影響。
以下範例演示了該模式中部分和完全透明是如何視覺上去除網格部分的:



Transparency 模式的結果有兩個,具體取決於 MeshPart.Transparency 設置為 0 或 至少 0.02,儘管數值精度可能導致小值(例如 0.01)觸發不透明的透明度。
- 當 alpha 用於切割出大部分不透明物體的形狀,並且具有硬邊緣,如植物、蕾絲面料和網狀物時,將 MeshPart.Transparency 設置為 0。當表面的一部分完全不透明時,Roblox 引擎可以使用適當的深度基於遮擋進行渲染。不透明表面也通常更好地配合基於深度的效果,如 DepthOfFieldEffect、玻璃和水折射,以及水反射。
- 當 alpha 用於為半透明物體或具有平滑透明度漸變的物體添加細節時,將 MeshPart.Transparency 設置為 至少 0.02。這會改善物體的混合質量,例如骯髒的窗戶和柔邊羽毛,但不會與所有效果一起使用。
色彩遮罩
您可以使用 Enum.AlphaMode.TintMask 模式將 SurfaceAppearance.Color 的著色應用於表面的選擇區域。著色最強烈的地方是 alpha 通道完全可見的地方,而在 alpha 通道透明的地方則不應用。

顏色著色
您可以通過修改 SurfaceAppearance.Color 屬性來為您的顏色貼圖應用著色。著色不會影響性能,並且您可以通過重複使用單個顏色貼圖和不同的著色來節省內存。使用顏色著色創建您 MeshPart PBR 紋理之間的額外低成本變化,或在實時中以編程方式修改您的 PBR 表面顏色。
SurfaceAppearance.Color 的著色應用為乘數,因此最終外觀是 Color3(顏色的 texel)乘以 SurfaceAppearance.Color 的結果。這意味著會在接近白色的灰階顏色中創建您的原始 SurfaceAppearance.ColorMap,在應用此屬性後會產生最強的著色效果。
著色僅適用於 SurfaceAppearance.ColorMap,而不適用於 MeshPart.Color。在應用 透明度 時,您可以繼續使用 alpha 通道。
當 SurfaceAppearance.AlphaMode 設置為 Overlay 且存在 alpha 通道時,底層的 MeshPart.Color 會顯示,而 SurfaceAppearance.Color 的著色僅適用於可見的 SurfaceAppearance 顏色貼圖。
當 SurfaceAppearance.AlphaMode 設置為 TintMask 且存在 alpha 通道時,alpha 通道控制 SurfaceAppearance.Color 的著色量。著色最強烈的地方是 alpha 通道完全可見的地方,而在 alpha 通道透明的地方則不應用著色。

法線
法線或表面貼圖為您的表面添加紋理深度,行為類似於 高程圖。因此,效果可能會根據視角和照明環境的不同而淡化或加強。
在下圖中,您可以在網格參考和貼圖參考之間切換,以比較法線圖的值:



圖像的 R、G 和 B 通道分別對應於本地表面向量的 X、Y 和 Z 組件。均勻的顏色圖像 <Typography noWrap>[127, 127, 255]</Typography> 轉換為完全平坦的法線圖。Roblox 僅支持 OpenGL 格式 - 切線空間 法線圖。
法線圖顯著影響網格的視覺表面,並可能突顯出紋理中的不自然接縫。盡可能隱藏您的紋理接縫,以避免與網格的視覺問題。
粗糙度
粗糙度或微表面貼圖決定了光在模型表面上的擴散。當粗糙度為 0% 時,表面完全不散射光,因此在材料上會產生更銳利、更明亮的反射和光澤。當粗糙度為 100% 時,光和反射均勻散射在模型上,導致表面呈現較不反射的啞光外觀。
下圖顯示了各種粗糙度貼圖值的比較:



粗糙度可能會影響物體在不同角度的反射性,這稱為 菲涅耳 效應。Studio 的菲涅耳處理旨在實現物理真實世界的準確性,儘管在某些角度下,即使是在粗糙的表面上,您仍可能會得到意想不到的鏡面反射貢獻。在某些情況下,您可以通過將粗糙度貼圖值增加約 0.1 來補償,以便在材料上獲得一致的照明響應。
儘管 Roblox 準確渲染此照明效果,但表面的亮度和反射率在您的紋理內容創建軟件(如 Substance Painter)和 Studio 之間可能不會一致響應。請參見 服裝範例 獲取不同應用之間渲染的區別。
金屬度
金屬度 決定了表面的反射性。在大多數情況下,您應該將此值設置為 0%(非金屬)或 100%(金屬),雖然在創建具有適度反射特性的表面(如緞面或絲綢)時,您可以使用部分金屬度值。這種做法可以微妙地偽造材料的反射,突顯來自 顏色/albedo 貼圖 的顏色,而不是環境中反射的顏色。
請參見以下圖以比較各種金屬度貼圖值:



不同的 PBR 渲染器使用不同的工作流程來處理反射性。Studio 僅使用 金屬度工作流程,這決定材料是 非金屬 還是 金屬,有時被稱為 絕緣體 或 導體。
自發光蒙版
灰階的 EmissiveMaskContent 內容紋理在表面上施加 自發光蒙版。這使您可以使用紋理來控制自發光,以比全有或全無的 Neon 材料獲得更大的藝術控制,並且可以創建詳細的發光效果,如發光文本、未來主義盔甲或生物發光生物。
相關的 EmissiveTint 屬性決定自發光貢獻的著色顏色,而 EmissiveStrength 則決定自發光貢獻的強度。











