RTX 廢土光追村

支援 RTX 的《當個創世神》PBR 材質指南

《Minecraft》Bedrock 版,又名為《Minecraft》Windows 10 版,已升級使用最新的路徑追蹤的光線追蹤技術,使遊戲玩家和遊戲世界建造者能夠打造不可思議的新景觀和令人身歷其境的環境。為了充分利用光線追蹤技術在支援 RTX 的《Minecraft》Beta 版中賦予的全新可能性,遊戲亦加入物理材質支援,包含額外的表面細節、發光功能等。

Ray Tracing Off, PBR Textures On

光線追蹤關閉 
(啟用 PBR 的材質)

Ray Tracing On, PBR Textures On

光線追蹤開啟
(同樣啟用 PBR 的材質)


在本指南中,我們將逐步引導你建立自己的《Minecraft》PBR 材質或升級現有材質和材質包,讓你新增光線追蹤支援的《Minecraft》遊戲世界能充分利用《Minecraft》Bedrock 版所提供的一切優點。

此外,我們將示範如何建立自己的高解析度材質,打造由栩栩如生的高解析度方塊所組成的遊戲世界,並使用頂級的 Substance Painter 應用程式,提供更簡易輕鬆的工作流程替代方案。

Minecraft with RTX, with fancy PBR Textures enabled

如需如何轉換遊戲世界的指南,請前往此處。而且為了確保你獲得最佳遊戲體驗,請下載最新的支援 RTX 的《Minecraft》Beta 版 Game Ready 驅動程式

《Minecraft》材質概覽

Vanilla《Minecraft》(Bedrock 版) 中,大多數材質檔案只使用 2 種圖:基本色彩和不透明。基本色彩圖儲存在材質的 RGB 色板中。這是大多數人在談論《Minecraft》材質時所指的材質圖。

部分材質亦具有其他不透明圖,可能是儲存在 Alpha 色板 (用於 TGA 材質檔) 中或是以隱含方式儲存 (用於 PNG 材質檔)。在 RTX 版《Minecraft》中,你則需要將具有 Alpha 色板的 TGA 檔用於不透明圖。稍後會有更多介紹。

Rail opacity map

Rail opacity map alpha channel

全新的 PBR 系統使用這 2 種圖以及 4 種附加圖來表示材質所代表的真實世界材質表面:

資產流程

以下為各種 PBR 材質圖與遊戲物件的關聯:

每個 > 方塊/項目/物體 有 6 個 > 封裝至 >  3 個材質檔案 (.PNG) 的 PBR 材質圖 > 又稱為 > 材質素材集

目前 6 個 PBR 圖都封裝至 3 個材質檔的色板中供遊戲使用。封裝圖可減少新材質素材集的整體檔案大小和檔案數量。

以「gold_ore」方塊的 PBR 版本為例:

注意:在最後發佈版本中,這個色板封裝系統會升級為新的「材質素材集」系統,讓檔案命名和材質圖/色板管理更加靈活。升級後,你仍可以使用本文件中詳述的色板封裝/檔案系統,無需重新處理任何材質檔案。如使用首次發佈的支援 RTX 的《Minecraft》,請使用上方列出的色板封裝。

NVIDIA 與合作夥伴資源包

支援 RTX 的《Minecraft》Beta 版推出六個免費的創作者世界包含創作者製作的 PBR 資源包可供使用。這些升級材質是依照下列物理渲染管道製作,並經過最佳化以提供極致效能和細節。

除了這些遊戲世界及其資源套件之外,NVIDIA 還另外發佈了四個資源包。NVIDIA 製作了 HD Decorative 資源包和 HD Foundational 資源包這兩個資源包,不過由於目前 Beta 版的限制,不建議同時啟用兩個資源包。如果同時啟用,一個資源包將會失效,導致其他材質的解析度下降。另外兩個資源包 Muddle RTX 和 RazzleCore RTX 則是由 Razzleberries 製作。

有了這四個資源包,你就能夠同時享有具備 PBR 功能的高解析度材質 (1024x1024) 與低解析度材質 (8x8 or 16x16)。

另外,為了展示全新《Minecraft》PBR 材質的無限可能,我們與 Razzleberries 合作打造了 RTX 博覽會博物館遊戲世界,這是一個大型的史密森尼風博物館,展示支援 RTX 的《Minecraft》所提供的每項增強功能、優點和改良。漫步在這個遊戲世界時,你會看到 PBR 材質與光線追蹤的完美搭配,實現過去傳統光柵化和效果技術所無法達成的細節和擬真度。

如果自行製作材質,你可以藉由覆寫現有材質、加速工作流和迭代速度,在遊戲世界內快速輕鬆地測試材質。

此外,我們還與一群全球最優秀的《Minecraft》玩家合作開發六個免費的創作者世界,這些遊戲世界具備完整路徑追蹤和 PBR 材質,為你提供遊戲世界和材質的製作靈感。請在《Minecraft》遊戲內的 Marketplace 商店搜尋「RTX」或造訪此處的下載連結來下載創作者世界。

Minecraft with RTX Beta: Crystal Palace Screenshot

Minecraft with RTX Beta: Imagination Island - Interactive Screenshot Comparison - RTX ON

Minecraft with RTX Beta: Razzleberries RTX Texture Showcase Interactive Screenshot Comparison - RTX ON

Minecraft with RTX Beta: Color, Light and Shadow - Interactive Screenshot Comparison - RTX ON

Minecraft with RTX Beta: Of Temples and Totems - Interactive Screenshot Comparison - RTX ON

希望這些驚人的展示能為你提供靈感,創造自己的 PBR 材質和光線追蹤遊戲世界。

所需工具

要建立自己的 PBR 材質素材集,需要使用照片編輯/數位繪圖應用程式。以下是幾個絕佳的選擇:

本指南將專門介紹 Photoshop 工作流程,但相同概念也可以轉移至其他數位繪圖應用程式。

不透明圖

不透明圖搭配 RTX 遊戲組建的效果很好,非常適合製作玻璃和樹葉等材質。然而,你需要在材質檔案 1 (請參閱上述) 的 Alpha 色板中進行繪製,並將此檔案另存為 32 位元/像素的 .TGA 檔案,而非 .PNG 檔案。否則不透明圖將無法正常運作。

Save as a 32-bit TGA file

注意:使用測試版時,無論啟用或停用 RTX 皆會使用相同材質。這表示啟用 RTX 時所調整的不透明度值在停用 RTX 時可能會看起來過於透明。為了取得平衡,在啟用 RTX 時,遊戲只會使用材質 Alpha 色板範圍的上半部分 (0.5 - 1),但會將此範圍對應至遊戲中不透明度的完整範圍,因此不會損失任何功能。停用 RTX 時,Alpha 色板的完整範圍會對應至遊戲中不透明度的完整範圍。

範例:

如果材質的 Alpha 色板值 = 0 (黑),則:

在遊戲中啟用 RTX 時,材質不透明度 = 0 (完全透明)

在遊戲中停用 RTX 時,材質不透明度 = 0 (完全透明)

如果材質的 Alpha 色板值 = 0.5 (中灰),則:

在遊戲中啟用 RTX 時,材質不透明度 = 0 (完全透明)

在遊戲中停用 RTX 時,材質不透明度 = 0.5 (50% 不透明)

如果材質的 Alpha 色板值 = 0.75 (淺灰),則:

在遊戲中啟用 RTX 時,材質不透明度 =  0.5 (50% 不透明)

在遊戲中停用 RTX 時,材質不透明度 = 0.75 (75% 不透明)

如果材質的 Alpha 色板值 = 1 (白),則:

在遊戲中啟用 RTX 時,材質不透明度 = 1 (完全不透明)

在遊戲中停用 RTX 時,材質不透明度 = 1 (完全不透明)

全新的 PBR 材質圖

PBR 系統不要求在每個材質素材集使用所有的 PBR 圖,但這樣做可獲得最佳的外觀成果。

Metallic map example

在上面的範例中,方塊的整個表面都有一致的粗糙度,但這裡使用金屬圖來控制哪些像素為金屬 (白色),哪些像素為非金屬 (黑)。金屬像素看起來比較像黃金,而非金屬像素則比較接近閃亮的黃色塑膠。

Emissive Map Example

Roughness Map Example

在上方的範例中,方塊的整個表面都有一致的金屬度,但它使用粗糙度圖來控制哪些像素為非常粗糙 (白),哪些像素為非常平滑 (黑),以及部分介於之間 (灰) 的像素。光滑、較不粗糙的像素看起來比較像閃亮的藍色寶石,而粗糙的像素則比較接近粗糙的灰色岩石。

Normal Map Example

Normal Map Default Color

高度圖 - 此外,法線材質檔案也可作為高度圖使用。

高度圖有一些限制,且應僅用像素化材質

素材集如 16x16 像素的 Vanilla《Minecraft》材質。如果要繪製非像素化的

材質,請考慮使用法線圖而非高度圖。

只有以特定方式設定色板時,才會將法線材質檔案視為高度圖:

Height Map Example

建立基本色彩和不透明材質檔案

首先,讓我們建立自訂基本色彩和不透明圖:

1. 1. 一開始先在應用程式中開啟 Vanilla《Minecraft》材質,或跳到步驟 2。

Open a vanilla Minecraft texture to start

2. 以所需的材質解析度建立新文件。(16x16 像素適用於大多數 Vanilla《Minecraft》材質) 此外,建議像素密度為 72 像素/吋。

Create a new Photoshop file with these specs

3. 為基本色彩和不透明圖建立工作圖層 (如果需要)。繪製所需的內容,並在這些圖層中進行編輯。在下面的範例中已繪製多個圖層以編輯基本色彩圖 (更加金黃 (more gold) 圖層!)。

Create layers for opacity and other features

4. 當基本色彩和不透明圖的圖層看起來符合你的需求時,最好使用物件的材質素材集名稱儲存 Photoshop 文件。 在此範例中,此檔案另存為「gold_ore.PSD」。接下來,我們需要儲存一個可供遊戲使用的材質檔案。

注意: 對於大多數的遊戲物件來說,不透明度圖中的透明像素在基本色彩圖中也必須繪製為黑色 (例如樹葉)。但也有例外的時候,例如鐵軌,透明像素就必須在基本色彩圖中繪製為白色,才能在遊戲中正確顯示。有時可能得實驗一下。

5. (選用,僅適用於非不透明物體) - 複製不透明圖圖層,將複製的圖層合併在一起以建立單一圖層,然後複製它 (Ctrl+C)。

6. (選用,僅適用於非不透明物體) - 在「色板」索引標籤中,建立新的 Alpha 色板,並將合併的不透明圖貼上 (Ctrl+V) 至此色板中。按一下 RGB 色板左側的小型灰色方塊,讓 RGB 色板再度可見。

Creat a new alpha channel, if needed

現在你的基本色彩圖已儲存在 RGB 色板中,不透明圖則儲存在 Alpha 色板中。

7. (選用,僅適用於非不透明物體) - 返回「圖層」索引標籤並隱藏任何不透明圖圖層。應僅顯示基本色彩圖圖層。

8. 重新儲存 .PSD 檔案。

9. 使用 [Save As] (另存新檔) 命令儲存可供遊戲使用的 .PNG 材質檔案。

關於不透明的注意事項:如果物體應為非不透明,並在 Alpha 色板中使用不透明圖,則在此步驟會儲存 32 位元/像素的 TGA 檔案。請參閱上方的不透明圖一節。

命名注意事項:檔案命名在此步驟中很重要!此 .PNG 檔案應與你正在修改的遊戲物件名稱一致。在此範例中,此檔案另存為「gold_ore.PNG」。

10. 你已經成功為完整的 PBR 材質素材集建立了 3 個材質檔案中的第一個檔案。

建立金屬、發光和粗糙度材質檔案

接下來要建立第二個 PBR 材質檔案,結合金屬、發光和粗糙度 PBR 圖。

1. (選用) 一開始先在 Photoshop 或類似的應用程式中開啟 Vanilla《Minecraft》材質,或跳到下一步。

Open a vanilla Minecraft texture to start

2. 使用與第一個材質檔案 (基本色彩和不透明圖) 相同的材質解析度建立新文件。(16x16 像素適用於大多數 Vanilla《Minecraft》材質) 同樣地,建議像素密度為 72 像素/吋。

Create a new Photoshop file with the same specs as the previous one

3. 為金屬、發光和粗糙度圖建立工作圖層。繪製所需的內容,並在這些圖層中進行編輯。

注意: 只需使用灰階值繪製這些圖。

在下面的範例中已繪製多個圖層以建立所需的粗糙度圖成果。

Create layers

4. 請確保將每種圖類型的圖層放置在圖層群組中。這在接下來的幾個步驟中很重要。

Group the layers

5. 在金屬圖層群組上按右鍵並選擇 [Blending Options] (混合選項)。

6. 取消勾選綠色 (G) 和藍色 (B) 色板:

Uncheck Green and Blue channels

7. 按一下 [OK] (確定) 關閉金屬圖層群組的 [Blending Options] (混合選項) 視窗。

8. 在發光圖層群組上按右鍵並選擇 [Blending Options] (混合選項)。

9. 取消勾選紅色 (R) 和藍色 (B) 色板:

Uncheck Red and Blue channels

10.按一下 [OK] (確定) 關閉發光圖層群組的 [Blending Options] (混合選項) 視窗。

11. 在粗糙度圖層群組上按右鍵並選擇 [Blending Options] (混合選項)。

12. 取消勾選紅色 (R) 和綠色 (G) 色板:

Uncheck Red and Green channels

13. 按一下 [OK] (確定) 關閉粗糙度圖層群組的 [Blending Options] (混合選項) 視窗。

14. 在金屬、發光,與粗糙度圖的圖層看起來符合你的需求時,最好使用物體的材質素材集名稱並加上 *_mer 尾碼來儲存 Photoshop 文件。

在此範例中,此檔案另存為「gold_ore_mer.PSD」。接下來,我們需要儲存一個可供遊戲使用的材質檔案。

15. 使用 [Save As] (另存新檔) 命令儲存可供遊戲使用的 .PNG 材質檔案。

注意事項:再次提醒,檔案命名在此步驟中很重要。此.PNG 檔應與你正在修改的遊戲物件名稱一致並加上 #_mer 尾碼。在本範例中,此檔案另存為「gold_ore_mer.PNG」。

16. 你已經成功為完整的 PBR 材質素材集建立了 3 個材質檔案中的第二個檔案。

建立法線材質檔案

法線圖通常使用專用工具建立。有許多專業的應用軟體可選擇,同時也有一些很棒的免費替代方案可用:

磚牆 PBR 材質素材集 (左) 及其法線圖 (右) 的範例:

Brick wall PBR texture

The normal map of a brick wall PBR texture

  1. 使用偏好的工具或工作流程,並採用與第一個材質檔案 (基本色彩和不透明圖) 相同的解析度建立法線圖。建議像素密度同樣為 72 像素/吋。
  2. 使用 [Save As] (另存新檔) 命令儲存可供遊戲使用的 .PNG 材質檔案。 注意:再次提醒,檔案命名在此步驟中很重要。這個 .PNG 檔案應與你正在修改的遊戲物件名稱一致並加上 #_normal 尾碼。在本範例中,此檔案另存為「gold_ore_normal.PNG」

    如果不熟悉建立法線圖的方式,可以選擇不使用或是將 (128, 128, 255) RGB 色彩填入材質以建立「空白」的法線圖,然後儲存 .PNG 檔案。

    由於「gold_ore」範例是像素化材質,因此我們也可以使用高度圖選項來建立表面細節。在此範例中檔案名稱仍為「gold_ore_normal.TGA」,但儲存在材質色板中的資訊會有所不同。請參閱前述全新 PBR 材質圖一節中的高度圖子節以瞭解更多資訊。
  3. 完成了 ! 你已經為完整的 PBR 材質素材集建立了第三個也是最後一個材質檔案。

備用工作流程:使用 Photoshop 的 [Generate Image Assets Function] (生成影像資產功能)

除了對於 3 個 PBR 材質檔案各自使用 3 個 Photoshop 的 .PSD 檔案,你也可以選擇使用單一個 .PSD 檔案,並利用位於 [File ] (檔案) 功能表的 [Generate] (生成) → [Image Assets] (影像資產) Photoshop 功能。

Generate Image Assets in Photoshop

只要為每個 PBR 材質檔案建立圖層群組,並用正確的檔案名稱和檔案類型 (.png) 為其命名,這些檔案就會在每次變更後自動儲存 (在第一次儲存 .PSD 檔案之後)。

如需更多資訊請至此頁面

注意:由於此功能無法輸出 .TGA 檔案,所以無法用來儲存非不透明材質素材集所需,具 Alpha 色板的材質檔案

翻頁材質/動畫物件的限制

支援 RTX 的《Minecraft》中,動畫物件 (如海燈籠、火和熔岩) 採用翻頁材質,所以必須以不同方式處理。目前這些動畫物件不支援 PBR 功能。在最終發佈的支援 RTX 的《Minecraft》中,只要依據上述步驟調整到更高的細節程度,就能支援翻頁材質。

建立完全反射鏡面的限制

使用 PBR 圖 (如金屬和粗糙度) 搭配光線追蹤,可以建立高度反射材質,如閃亮的塑膠、光滑的金屬或拋光的岩石。這些物體都會具有高品質的反射效果。

但是,對於完全反射物件 (如鏡面),則需要設定 PBR 圖以啟用完全的鏡面效果。如果你使用純黑的粗糙度圖 (0.0) 和純白 (1.0) 的金屬圖,遊戲會將此材質解讀為完全鏡面效果。這表示光線追蹤程式碼可以在計算過程中採用某些較短的路徑,因為已確定材質會完全反射環境,所以無需考慮其他細節。 

Creating Mirrors

如何透過 Adobe 的 Substance 建立 PBR 材質

如果能夠存取 Substance Painter 應用程式,就可以更直覺的方式建立更高解析度的 PBR 材質素材集。此應用軟體可在網格幾何圖形上即時顯示 PBR 材質素材集的所有圖。如此一來便可在作業時調整材質圖,而無需啟動遊戲、移動任何檔案或修改色板。

1. 啟動應用程式並從 [File] (檔案) 功能表中選擇 [New Project] (新專案)。

Start a new project in Substance, using these specs

2. 範本 = Unreal Engine 4 - 可自動設定各種應用程式和檢視器設定。請隨意嘗試其他選項或製作自己的範本!

3. [File] (檔案)→ Select (選擇) - 你可在此選擇要顯示哪個網格,並在其上繪製材質。對於 RTX 版《Minecraft》,使用 1 公尺乘 1 公尺的立方體網格搭配 6 個面 (無需再細分) 即可提供精確的預覽,能夠看到遊戲中材質圖至方塊時的外觀。建議使用 .FBX 網格格式

4. 文件解析度 - 這是你的材質解析度目標。注意:此設定之後可隨時以非破壞性的方式變更。處理 HD 材質時,建議以 1024 的解析度作業 - 如此便能夠以最少的像素化程度取得材質中的許多細節,讓應用程式在大多數的 PC 設定上都能順暢且快速地執行,同時 HD 材質在遊戲中也能看起來銳利清晰。

如果你只處理過 Vanilla《Minecraft》中的材質,就會注意到這裡無法選擇 16 像素 x 16 像素的解析度 (最低需為 128 像素)。但還是可以用 128x128 (或更大) 的解析度來創造並匯出材質,然後再使用 Photoshop 等影像編輯應用程式中將材質縮小。

5. Normal Map Format (法線圖格式) = DirectX (保留預設值)

6. Compute Tangent Space Per Fragment (計算每個片段的切線空間) = True (保留預設值)

7. Add (加入) - (選用) 這裡可以選擇匯入任何已完成的輔助材質。在使用 HD 版本取代 Vanilla《Minecraft》材質時,在此處匯入 Vanilla 材質當作參考可能非常實用。注意:此匯入步驟也可以在稍後隨時執行。在此範例中,建立作為參考的新專案時,會匯入 Vanilla 的「iron_block」材質檔案。

8. 請按一下 [OK] (確定)。應用程式應會開啟正在建立的新專案,如下所示:

Your new project will look something like this

9. 此時最好將發光圖加入材質素材集清單中。即使你的材質素材集不會用到發光效果也不用擔心,因為預設值為黑 (0.0),不會造成任何影響。

注意: 如果你預計要建立非完全不透明的材質素材集, 也可以用相同方式將不透明圖加入材質素材集清單中。

How to make an opacity map

10. (選用) 接下來,在「基本色彩」插槽中將材質參考加入新的填滿圖層。然後便可在 [專案] (Project) 標題下的 [Shelf] (工具架) 上找到匯入的參考材質。

Define a texture reference

圖層在建立時會自動設定為雙線性過濾,這會使像素化材質 (如 Vanilla《Minecraft》材質) 看起來模糊不清。要修正此問題,只需將圖層的「過濾」功能設為「最接近」。但如果不需使用像素化材質,請在圖層過濾功能中保留雙線性 HQ 的預設設定。

在這裡最好將此參考圖層設為完全粗糙 (1.0)、無金屬性 (0.0) 及不發光 (黑:0, 0, 0)。如此一來可確保參考材質在 Painter 中能顯示最接近 Vanilla 遊戲中的效果。

注意:如果在建立專案時未匯入參考材質或其他資源,可以隨時使用 [Shelf] (工具架) 上的 [Import Resources] (匯入資源) 按鈕執行此作業。

Use this button to import textures at any time

11. 現在是儲存專案的絕佳時機。建議使用要替換其材質素材集的遊戲物件來命名 Painter 專案。在此範例中,此專案檔另存為「iron_block.SPP」。以這種方式命名專案,之後匯出材質素材集時會更加輕鬆。

Save your project

12. 從這裡,你可以用所有合適的 PBR 圖建立材質素材集。

在這個範例中,我們加入新的填滿圖層 (具有經過部分調整的子圖層) 以建立高解析度的深色鐵材質。

Create your PBR texture set

13. 接下來,以一個新的填滿圖層加上邊緣細節,讓方塊表面別具一格。

Add a fill layer

14. 最後,再用另一個填滿圖層加上些許髒汙堆積在邊緣角落,以及一些任意刮痕遍布在表面上。

Add another fill layer to give your texture some extra detailps

15. 如有需要請重新儲存。

16. 現在整個材質素材集在 Painter 中看來令人滿意,這時便需要將材質匯出。
    
    選擇: [File] (檔案) → [Export Textures] (匯出材質) 以開啟匯出子視窗。

17. 建立這樣的新匯出預設設定,便能夠輸出遊戲組建可使用的材質素材集。

Create a new export preset configuration by following the squiggly lines

請注意,每個輸出圖上的「$project」前綴會以專案名稱命名每個匯出的材質檔案。因此,如果以此材質素材集所屬的遊戲物件來命名專案,則所有匯出的材質將立即能在遊戲中使用,而無需再重新命名。

18. 設定好匯出預設設定後,請在 [Config] (組態) 欄位中選擇它,並使用以下建議設定:

位置 - 這可以是正在作業的資源包的材質位置。如此一來作業會更容易,因為從 Painter 匯出的材質會立即顯示或更新到遊戲執行時所參照的同一個資料夾中 (假設已在遊戲中啟動了資源包)。

PNG - 使用此設定可確保你的檔案可供遊戲使用,同時保持檔案最小且效率最佳。

材質素材集解析度 - 這會決定匯出材質的大小。此設定與專案的解析度無關。因此可以使用不同的解析度分別處理專案及匯出檔案。HD 材質素材集建議使用 1024x1024 的解析度。

Define your texture's export resolution

注意: 上面的範例適用於完全不透明的材質素材集。如果需要將材質素材集清單中的不透明圖使用在透明度上,請將基本色彩圖匯出為 Targa (.TGA) 檔 (而非 .PNG) 並將不透明圖儲存在 Alpha 色板中。

Follow more squiggly lines to save as a TGA if you're using transparencies

19. 請重新儲存你的專案!這也會儲存匯出設定,讓你進一步迭代材質素材集時工作流程更迅速。

20. 完成了! 你已經為 RTX 版《Minecraft》建立了第一個 HD PBR 素材集。請參閱前面章節中的資源包設定如何在遊戲中測試你的材質以找到如何在遊戲中檢視新材質的說明。

主辦單位

工作人員

協辦單位