標籤:

支持導入任意貼圖的maya工具——材質管理器

簡介:

前兩篇文章中都有提及這個工具,DW_MaterialManager,翻譯過來就是材質管理器。前身也就是之前很多朋友都在用的SP2M。

現在這個材質管理器的主要功能有兩大方面:

1)導入任意命名規則的貼圖到maya軟體中,快速生成目標材質球,貼圖連接設置方式嚴格按照PBR規則。

2) 支持不同材質球之間的相互轉換,並且考慮原材質的細分與置換情況。

也就是說,不管你用的什麼貼圖工具去做貼圖,只要你最後要在maya中渲染,材質管理器都可以極大地方便與加速你的流程。

之所以改名字,也是因為現在的版本更新的功能非常多,已經不僅僅涵蓋substance painter(designer)到maya流程的材質連接了。 現在的版本除了預製的模板以外,還支持自定義貼圖命名規則,理論上來說,可以支持所有軟體導出的貼圖快速在maya中連接材質。不管是mari、mudbox、3dcoat、ddo或者photoshop,甚至是megascan 等材質掃描庫出來的貼圖,都可以很好地支持。所以為了不讓大家把自己的想像力僅僅局限在sp 到maya的小小框架里,我現在把這個升級版的工具叫做材質管理器。

下載地址: pan.baidu.com/s/1dFKQwS

自定義貼圖命名規則:

視頻:支持導入任意貼圖的maya工具--材質管理器_演講?公開課_科技_bilibili_嗶哩嗶哩

工具的強大之處:

1) 支持影視常用的3大渲染器(vray、arnold、Redshift)

2) 6種材質(VRayMtl、aiStandard、aiStandardSurface、alSurface、RedshiftArchitechtural、RedshiftMaterial)

3) 支持7種貼圖模板輸入(包括substance designer的模板,以及自定義模板)

4) 任意貼圖模板可以創建任意支持的材質球。

雖然這個工具發布有半個多月了,但是一直沒詳細跟大家說,所以我相信沒人會想到這裡要說的用法。 你們肯定以為,用Vray的模板就只能創建Vray的材質球,用Arnold的模板就只能創建Arnold的材質球。

實際上目前支持任意配對,也就是說,你使用Vray貼圖模板導出的貼圖,也可以生成Arnold材質球!

5) 支持使用高度圖當做置換圖產生真實置換;支持普通8位置換圖、以及32位浮點置換圖,並且推薦默認參數。

6) 支持按照命名一次性導入多個材質(數量無上限)

7) 支持新老線性工作流兩套流程(老版本arnold使用全局gamma控制,不識別maya的colorManagerment; 新版本取消了全局gamma控制,使用maya自帶的colorManagerment。vray在3.3左右也有類似改動)

8) 材質轉換時,支持線性工作流轉換;並且可以決定是否影響 沒有連貼圖的純色。

9) 支持openGL 和 directX兩種 normal貼圖類型,支持識別與互相轉換。

10) 支持不同渲染器之間細分數值、細分類型、置換強度的轉換(轉換材質之後,保持原來的細分置換效果,可跨渲染器)

11) 支持各種材質不同bump處理之間的轉換(vray直接連貼圖,arnold 使用maya bump2d節點, redshift 使用自製rsBumpNode 或者 rsNormalMapNode)

12)支持UDIM貼圖

已知的一些問題:

舊版本arnold使用32位貼圖時會忽略全局的gamma設置,這一點暫時不識別,做不到統一。(我沒想到好的識別圖片是32位的方法,有朋友有思路的望不吝賜教)

不支持mari以外的udim格式。其實UDIM的規則也有好幾套,不過用的最多的還是Mari這套規則,別的幾乎沒見人用過。所以我在這裡就偷個懶,沒有加別的規則。等到真有人用的時候再說吧。

不支持spec/gloss貼圖模板。因為技術上的問題,metal/rough 貼圖可以很簡單地轉換成 spec/gloss貼圖,但是反過來的話,因為信息不足,並不是肯定可以轉換,所以這一條就不支持了,大家盡量用metal/rough貼圖吧。

參考:Question regarding difference between PBR Spec/Rough and Rough/Metal workflow

Be aware that you can"t always convert from Specular/Gloss to Metal/Roughness as there are pair of values of (diffuse,specular) that cannot be converted to (basecolor,metallic). The conversion in the other direction is simpler and more precise in the general case as all (basecolor,metallic) pair correspond to a well defined (diffuse,specular).

下一階段更新方向:

首先是全方面支持glossyFresnel這個材質上的重大革新。因為考慮到很多朋友在使用舊版本的渲染器,所以需要設計一套節點完成這個效果。讓低版本的用戶們也可以使用這個功能。

現在這個功能的重要意義被大家嚴重低估。

具體的一些情況我這篇不會講很詳細,可以參考下這條微博 Sina Visitor System

本來是考慮材質轉換功能要支持 層材質 和 3s材質 的。不過根據這一段時間收到的反饋來看,使用材質轉換功能的人非常少,這兩個功能的開發難度又比較大,需要消耗大量時間,所以將無限期擱置。

每條功能的詳細解釋:

這裡相當於幫助文檔了,你遇到問題的時候再來查看這一部分的內容吧。

UI:

UI→ save preset 保存當前UI面板布局與參數為預製,下次打開的時候自動讀取預製。

UI→ reset to default 恢復UI面板布局與參數到默認狀態

Material Importer:

導入與連接材質的功能模塊。

CreateMaterial 選擇創建材質的種類, 可以選擇 VRayMtl、aiStandard、aiStandardSurface、alSurface、RedshiftArchitechtural、RedshiftMaterial

UseTemplate 選擇導入貼圖的預製模板,可以選擇 Arnold4(aistandard),Arnold4(alSurface),Arnold5(aistandard),Redshift,Vray,PBR_MetalRough,SubstanceDesigner_MetalRough,Custom

其中前面幾套都是substance painter的貼圖預製;SubstanceDesigner_MetalRough 是substance designer的預製。

Custom是用戶自定義選項,選擇這一項之後,會多出自定義貼圖命名規則的UI,你要確保你想要導入的貼圖中,對應的貼圖名要包含自己填入的關鍵詞。比如圖中的自定義預製就可以識別這一套命名: abandon_Diffuse ; abandon_Metallic ; abandon_Roughness ; abandon_Normal

並不是所有通道都必須使用。比如舉例的這一套貼圖裡,並不需要使用f0 或者ior等等。只需要保持對應的框為空即可:

udim textures 勾上表示導入的貼圖是udim貼圖(目前只支持mari規則)

usingMayaColorManagement 勾上使用maya的色彩管理,會給每個連入的貼圖設置colorSpace,Raw或者sRGB。

不勾選表示使用gammaCorrect節點來進行 線性工作流的管理。使用0.454的gamma來處理應該是sRGB的圖片。(由於sRGB與gamma2.2並不是完全一致的,所以這兩套流程在暗部會有差別,準確的效果以sRGB為準)

參考:渲染出的圖片和三維軟體中顯示不同?!都是gamma惹的禍 - 知乎專欄

openGLNormal(uncheck means directX normal) 勾上表示導入的法線貼圖是openGL類型,不勾表示導入的法線貼圖是directX類型

heightMapAsDisplacement 勾上表示導入的heightMap會作為置換貼圖使用,會連接一套置換節點。並且會自動開啟選中物體的細分置換屬性。

勾上後,會多出幾個選項:

heightMap_8bit 勾上表示導入的置換貼圖是普通的8位置換(或者是16位,非浮點);不勾表示導入的置換貼圖是32位浮點置換,同時推薦使用heightDepth為1;同時zeroHeight將不起作用。(因為32位置換中,圖片的亮度和物理位移距離一一對應,亮度為1 表示凸起1cm,亮度為2表示凸起2cm,-1 表示凹下1cm,0表示不凹不凸。所以一般不需要設置置換強度;同時也不需要重新設置水平位置,0就代表水平位置)

參考:Accurate Displacement Workflow

heightDepth 導入置換貼圖的時候,設置的默認置換強度。默認值為0.05。

zeroHeight 導入置換貼圖的時候,設置的水平麵灰度。比如一般的8位置換圖,亮度範圍在0-1;中性灰亮度為0.5,高於0.5的亮度為凸起,低於0.5的亮度為凹下。於是一般設置zeroHeight 為0.5

實際上,對於arnold和vray,這裡的zeroHeight,會影響貼圖本身的alpha offset,zeroHeight為0.5,則alpha offset 為-0.5

而對於Redshift渲染器,由於RedshiftDisplacement 節點帶來的效果要優於maya自己的displacementShader,我們全部使用RedshiftDisplacement 節點。Rs不識別alpha offset,所以這個時候,zeroHeight 會影響 RedshiftDisplacement 節點的NewRangeMin 和NewRangeMax。當然實現的結果和別的渲染器用alpha offset 一致。

TexturesPath 載入貼圖的路徑

MaterialName 載入材質的基本名,這個材質相關的一套貼圖必須都包含這個名字

import/assign 導入、創建並賦予材質,對於選中物體執行的時候,可以直接賦予該物體導入的材質(並且根據設置,可能會開啟物體本身的細分和置換)。沒有選擇任何東西的時候,只生成材質球。

特殊用法:MaterialName這一欄可以輸入多個名字。如果識別到多個名字用分號隔開,比如:

marble;sand;oil

那麼會同時導入三個材質,但是,一定要確保你的maya,在導入之前,就已經有3個同名材質賦予了物體。之後會創建3個新的目標材質重新賦給對應的物體。

Material Assign 模塊

提供了一個方便的暫存和賦予材質的小工具。

getMaterial 可以獲取選中物體當前的材質,並且暫存下來;assignTempMaterial會將暫存的材質賦予給選中的物體。

enableSubdiv_dis 選中表示,賦予材質的時候,會考慮之前選擇物體的細分置換情況,賦予材質的同時,繼承之前的細分與置換。

Material Converter 模塊

材質相互轉換的功能,可以選擇物體執行,也可以選擇材質球執行。選擇物體執行的話,執行完會直接將轉換過的材質賦予對應物體,並且考慮原材質的細分置換。

from 原材質類型

to 目標材質類型

LinearWorkFlow 這裡決定了轉換前的線性工作流策略,以及目標線性工作流策略。

use maya colorSpace 是使用maya自己的色彩管理;

classic gamma 2.2 是針對老版arnold的,當老版本arnold全局gamma 都使用2.2的時候,勾選此選項;

classic Raw 是針對老版 arnold的,當老版本arnold 全局gamma 都使用1的時候,勾選此選項。

當使用classic gamma 2.2 轉換到 use maya colorSpace的時候,會將需要修改的file節點的colorSpace 改成 gamma2.2 Rec 709 ,而不是一般大家以為的sRGB,這樣能得到效果的最大接近。

參考:渲染出的圖片和三維軟體中顯示不同?!都是gamma惹的禍 - 知乎專欄

相同的LWF策略之間不會進行實際的LWF設置轉換,比如說,use maya colorSpace 轉換到use maya colorSpace ,其實不需要經過任何設置的修改。同樣的,classic gamma 2.2 轉換到classic gamma 2.2 也不會有任何變動。

對於use maya colorSpace 轉換到 classic gamma 2.2 ,會對貼圖創建gammaCorrect節點,進行gamma矯正。

affect color swatch LWF的改變,也會影響純顏色。比如說,我有的顏色通道,並沒有連入貼圖,但是在不同的LWF下,應該使用不同的數值。

默認應該勾選這個選項。


推薦閱讀:

從黑暗走向光明,他讓建築完美地融入到自然環境中——安藤忠雄
VFS玻璃和水材質的正確打開方式,快來Get!
SP導出貼圖導Redshift渲染效果不同的問題

TAG:渲染 |