PBR 紋理

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

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

一個擁有辮子的類人角色,穿著光澤外套、帶有貼圖的牛仔褲和靴子。
一個擁有短髮的類人角色,穿著皮革外套、七分褲和橙色鞋子。

有多種應用和工作流程可用於創建 PBR 紋理。您可以在自定義 3D 物體創建的建模和紋理化階段使用這些,前提是 Roblox Studio 支持 您正在使用的特定紋理貼圖。

本指南提供有關 設定 您的網格物體以使用 PBR 紋理貼圖的指導,並描述了 Roblox 支持的 PBR 紋理貼圖 的常見使用案例和最佳實踐。在創建您自己的表面時,請參閱 材料參考 以獲取常見材料值、圖像比較和服裝範例。

啟用表面外觀

您可以通過添加 SurfaceAppearance 物件將 PBR 紋理添加到任何 MeshPart,這會覆蓋原來分配的紋理。一般而言,您不能在遊戲中通過腳本修改 SurfaceAppearance 屬性,因為引擎需要一些前期處理才能顯示這些圖形。與添加基本紋理類似,每個紋理圖像貼圖必須指向相應的已上傳圖像資產 ID。

要為 MeshPart 啟用表面外觀:

  1. 探險者 窗口中,將鼠標懸停在 MeshPart 上,然後點擊 ⊕ 按鈕。

  2. 從上下文菜單中插入 SurfaceAppearance

    在 Studio 的探險者窗口中,父層為 MeshPart 的 SurfaceAppearance 物件。

    當您準備為 SurfaceAppearance 物件添加貼圖時,可以在 屬性 窗口中點擊每個貼圖屬性並輸入資產 ID。

紋理貼圖

Studio 目前支持 5 種 PBR 紋理貼圖:顏色法線粗糙度金屬度自發光。每種貼圖都對物體的表面外觀的重要方面做出相應的影響。紋理貼圖僅變更視覺外觀,並不影響 MeshPart 物件的幾何形狀。

請參閱以下範例,以了解 Roblox 支持的紋理貼圖和其他資源的概述:

ColorMap 屬性設置了表面的顏色數據,包括貼圖中存在的任何透明度。請參見 顏色 (albedo) 以獲取其他資訊。

一幅填滿的圖像,主要是紅色,並帶有各種黑色塊狀物和白色刮痕。
範例貼圖
一個空白的白色球體,背景是深色的。
範例網格
一個紅色的球體,上面有黑色的塊狀物和白色的刮痕,背景是深色的。
網格和紋理

顏色(albedo)

顏色albedo貼圖決定了您的紋理顏色,並主要由顏色信息組成,幾乎不包含照明或紋理信息。為了進一步自定義,您還可以通過在您的 albedo 紋理中添加透明度來添加 透明性

Alpha 模式

對於需要部分或完全透明的物體,如草、葉子、蕾絲或污垢或污漬的貼圖,您可以使用各種 alpha 模式 為您的顏色貼圖應用透明度。如果您的顏色貼圖圖像格式支持 alpha 通道,您可以應用灰階 alpha 貼圖,在該貼圖中 0.0 是透明的,1.0 是不透明的。類似地,當使用例如 .png 的圖像格式時,顏色貼圖上的任何不透明度將作為資產上的透明度。

您可以通過設置以下 AlphaMode 值來以兩種不同的行為應用透明度:

  • 不透明 — 忽略 ColorMap 的 alpha 通道,並直接使用顏色貼圖中的顏色值。
  • 覆蓋 — 在底層網格的 MeshPart.Color 上覆蓋 ColorMap。使用覆蓋模式的顏色貼圖在任何存在透明度的地方顯示網格的基本顏色。這是默認設置。
  • 透明度 — 根據在 ColorMap 中的透明度移除可視網格。這使網格透明,當存在透明度時不會顯示原始網格顏色。
  • 色彩遮罩 — 在未着色的 ColorMap 上混合著色的 ColorMap
不透明

您可以使用 Enum.AlphaMode.Opaque 模式完全忽略 ColorMap 的 alpha 通道。在這種情況下,假設 alpha 值為 1 (完全不透明)。

以下範例演示了使用藍色物體作為參考的 Opaque 模式的工作原理:

一個帶透明度的圓點紋理,背景完全透明。
顏色/albedo 貼圖的透明度
一個位於平面上的藍色球體。
範例網格物體
在其表面上散布圓點圖案的球體。透明度值被忽略。
AlphaMode 設置為 Opaque
覆蓋

您可以使用 Enum.AlphaMode.Overlay 來揭示網格的原始顏色部分。由於顏色貼圖中的透明區域暴露了底下的顏色,您可以設計一個獨特的紋理貼圖,部分或完全顯示網格的 Color 屬性,以適應自定義膚色或其他具有獨特顏色的情況。

以下範例演示了使用淺藍色球體參考的 Overlay 模式的工作原理:

一幅填滿的圖像,顯示有小方格的半重複圖案。背景是棋盤式以顯示透明度。
顏色/albedo 貼圖的透明度
一個空白的青色球體,背景為深色的。
範例網格物體
一個白色的球體,上面散布著小藍色方塊。
AlphaMode 設置為 Overlay

以下範例使用 Overlay 模式來處理自定義角色,顯示角色的原始膚色:

一幅填滿的 3D 類人模型的紋理貼圖。圖像的不同部分是棋盤式或部分棋盤式,以顯示不同的透明度水平。
顏色貼圖在某些區域包含透明度,以揭示原始網格顏色
四個類人模型具有不同的膚色:淺褐色、黑色、白色、深綠色。
多個變體的角色使用相同的顏色貼圖,並使用 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 表面顏色。

一座具有默認黃色著色和反射翡翠般特性的雕像。
來自 The Mystery of Duvall Drive 的雕像網格,未進行著色。
一座紅色著色的雕像,仍然具有來自其其他紋理貼圖的高光反射特性。
雕像網格的 Color 設置為紅色。
一座綠色著色的雕像,仍然具有來自其其他紋理貼圖的高光反射特性。
雕像網格的 Color 設置為綠色。

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 通道透明的地方則不應用著色。

一個浮空的正方形平面,具有青色石板紋理,從左側逐漸變為完全透明,右側為完全不透明。浮空平面下方的細橫條有黑色到白色的漸變。
AlphaMode 設置為 Transparency。底部的灰階漸變條表示 alpha 值。MeshPart.Color 設置為紅色,SurfaceAppearance.Color 設置為青色。

法線

法線表面貼圖為您的表面添加紋理深度,行為類似於 高程圖。因此,效果可能會根據視角和照明環境的不同而淡化或加強。

在下圖中,您可以在網格參考和貼圖參考之間切換,以比較法線圖的值:

一個黏土顏色光滑的球體。
一個黏土顏色的球體,表面有適度多岩石的特徵。
一個黏土顏色的球體,表面非常岩石化。

圖像的 RGB 通道分別對應於本地表面向量的 XYZ 組件。均勻的顏色圖像 <Typography noWrap>[127, 127, 255]</Typography> 轉換為完全平坦的法線圖。Roblox 僅支持 OpenGL 格式 - 切線空間 法線圖。

法線圖顯著影響網格的視覺表面,並可能突顯出紋理中的不自然接縫。盡可能隱藏您的紋理接縫,以避免與網格的視覺問題。

粗糙度

粗糙度微表面貼圖決定了光在模型表面上的擴散。當粗糙度為 0% 時,表面完全不散射光,因此在材料上會產生更銳利、更明亮的反射和光澤。當粗糙度為 100% 時,光和反射均勻散射在模型上,導致表面呈現較不反射的啞光外觀。

下圖顯示了各種粗糙度貼圖值的比較:

一個藍色的光澤球體。
0%
一個藍色的半光澤球體。
50%
一個藍色的啞光球體。
100%

粗糙度可能會影響物體在不同角度的反射性,這稱為 菲涅耳 效應。Studio 的菲涅耳處理旨在實現物理真實世界的準確性,儘管在某些角度下,即使是在粗糙的表面上,您仍可能會得到意想不到的鏡面反射貢獻。在某些情況下,您可以通過將粗糙度貼圖值增加約 0.1 來補償,以便在材料上獲得一致的照明響應。

儘管 Roblox 準確渲染此照明效果,但表面的亮度和反射率在您的紋理內容創建軟件(如 Substance Painter)和 Studio 之間可能不會一致響應。請參見 服裝範例 獲取不同應用之間渲染的區別。

金屬度

金屬度 決定了表面的反射性。在大多數情況下,您應該將此值設置為 0%(非金屬)或 100%(金屬),雖然在創建具有適度反射特性的表面(如緞面或絲綢)時,您可以使用部分金屬度值。這種做法可以微妙地偽造材料的反射,突顯來自 顏色/albedo 貼圖 的顏色,而不是環境中反射的顏色。

請參見以下圖以比較各種金屬度貼圖值:

一個帶有光斑的棕色球體。
0%
一個帶有光斑和一些反射性的棕色球體。
50%
一個帶有適度的光斑和很多反射性的棕色球體。
100%

不同的 PBR 渲染器使用不同的工作流程來處理反射性。Studio 僅使用 金屬度工作流程,這決定材料是 非金屬 還是 金屬,有時被稱為 絕緣體導體

自發光蒙版

灰階的 EmissiveMaskContent 內容紋理在表面上施加 自發光蒙版。這使您可以使用紋理來控制自發光,以比全有或全無的 Neon 材料獲得更大的藝術控制,並且可以創建詳細的發光效果,如發光文本、未來主義盔甲或生物發光生物。

相關的 EmissiveTint 屬性決定自發光貢獻的著色顏色,而 EmissiveStrength 則決定自發光貢獻的強度。

一個橙色球體,帶有著色為紫紅色的南瓜自發光蒙版。
EmissiveTint = [255, 0, 255]
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。