VR Workflow (建築篇,三):Unity材質
記得自己早先在學校的時候,大部分時間都在方案上跟自己磕,等到了最後表達的時候,素模一渲就開始直接拽素材拽透視往上P。材質的話頂多就是個簡單貼圖或者渲個玻璃,常常是在臨交圖前沒辦法了請來老韓@韓世麟 支援。工作之後更是基本沒怎麼做過visualization之類的活兒,所以對於材質渲染方面一直都不咋地。
正是因為這樣的緣故,在第一次看到Unity里材質面板的時候感覺竟然如此簡單清新,似乎也沒有什麼複雜的參數(兩三個slider外加幾個貼圖而已),於是掌握了些基本概念就很快的上手了。
遊戲引擎大都使用的是基於物理渲染(Physically Based Rendering或PBR)的流程。PBR更多是一個概念而非一個具體規範,接下來要聊到的,就是在PBR這個概念的框架里。(感謝@小凡丶 的指出。PBR本身就夠再開一個專欄來寫了,有興趣的同學可以看SIGGRAPH的這個視頻:https://www.youtube.com/watch?v=j-A0mwsJRmk )
在Unity里第一次接觸到shader這樣一個概念(估計建築渲染里也有,只是自己當時不知道)。其實呢就是一段代碼,通過一些數學演算法和模型來決定物體上的像素最後成像看起來效果是什麼樣子的。當然我們並不需要擔心編程的事情,unity已經提供了很多常用的shader,網上也能下載到各種各樣的shader。使用中只需要明白我們最終能調整的那些材質的參數們就是通過shader來定義的就好了,一類的shader往往有著它自己的特性(這麼說來和Revit里的Family很像,這裡你能調整的都是instance parameter)。
在Unity里常用的有兩類Shader:Metal和Specular。簡單粗暴區分的話就是一個針對金屬,一個針對其他所有類型。不過在實際的使用中大部分時間沒有那麼大差別,用specular基本可以涵蓋大部分的情況和類型。
這兩種shader的材質面板都非常簡潔,基本全靠貼圖以及一兩個color override,道理上大致可以類比為PS里的多個不同圖層。我自己常用的其實主要也就是上面三個:Albedo,Metallic/Specular 和 Normal Map, 分別對對應著(或者類似)3D Max里的Diffuse,Reflection和Bump。在遊戲引擎里,好的材質的效果,除了Shader提供的基礎外,能不能把shader的全部潛力都發揮出來就全靠貼圖(質量)了。其他的諸如Height Map, Occlusion等等是個什麼意思全都在官方document有詳細介紹,就不在多重複了:Material parameters
回來說建築的Workflow。理論上說Unity(還有Unreal)都是支持3D max的材質的(如果你在導出模型的選項里選擇了」embed media」),但在實際操作的過程中卻並不是那麼一回事兒。
通常發生的情況是:當把文件從3D Max里導入到Unity里,材質確實是都還在(命名也都一致),但要麼就是只剩下一個材質的基本純色,要麼就徹底變成純白。我覺得主要是因為大家一般習慣上用Vray Material(或者3D Max material),裡面有很多複雜的參數設定,結果等transfer過來Unity這邊的shader太過基礎和簡潔了,參數要啥啥沒有,很多信息就此丟失掉了。比如下面這個木材質,剛進來的時候就只有一點基礎色,其他的貼圖連接全都丟失了。不過這也不是什麼太大的問題,重新連接一下貼圖就ok,基本上都能解決問題。
這個例子也很好的說明了貼圖對於最後的材質表達有多重要的意義。尤其是不要小瞧那些看著不明所以的specular、normal之類的貼圖,最後的模型到底看起來像是塑料片還是真的材質很大程度上就得靠這些要麼黑灰要麼藍紫色的貼圖了。這裡推薦一個神器:NDO Painter(現在也是Quixel Suite里的一部分,類似的產品還有Substance)。像我之前在(VR Workflow (建築篇,一):模型準備 - 知乎專欄)里提到的,在遊戲(應該也有電影)領域,基本模型建成後很多的工作是要在三維模型上再「PS」材質。Quixel和Substance對應解決的就是這樣的問題。當然在這個建築 VR workflow里,其實只是用到了這個軟體一點點皮毛:用來自動生成各種貼圖。過程非常的傻瓜,按照所需看著按鈕點就好了。
有興趣了解更多相關遊戲/電影3D artist workflow的同學推薦去這裡:https://www.youtube.com/watch?v=Rs86ebq2xJ0 和 https://www.youtube.com/watch?v=wrVWOAh6W2A (第一次看的時候感覺完全是打開了一個新的世界,很多之前不理解怎麼做的東西突然就都make sense了)
Unity里材質大致就是這樣,在90%以上的情況下,上面兩種基本的shader都可以滿足要求,主要還是看貼圖的質量效果。除了這兩類,還有一個Legacy Shader(這個就不是PBR了)也可能會用的上,Lightmmapped,亦即Bake to Texture。主要是會用在建築VR展示時切換不同的Design Option,以及在HoloLens里提高渲染質量時用。以後聊到相關的點時再展開吧。
推薦閱讀:
※一樹「梨花」壓政壇,一棟建築引風波!
※「雙一流」之後,土木建築名校大變局!
※這是一場很長的直播·榕樹邊的家
※有哪些著名的城市天際線,它們美在何處?