2016/06/30

為何材質庫沒有用?


文 / Hammer Chen

常常看到不錯的材質球(例如http://www.vray-materials.de/),下載後套在模型上效果卻很令人失望。或是看到有人教學分享原始檔,套用到自己的場景效果卻差強人意。似乎這些 material library 無法發揮效用? 究竟是為什麼?

  1. 尺度不一樣:貼圖的uv tiles要在適當的尺度範圍,才會讓材質球重現shaderball所展現的樣子。如果差太多bump,diffuse等等都會跑掉。如果有用VRayDirt或VRayCurvature或Displacement這類跟尺度有關的,也往往需要重新調整。例如Viscorbel - Old N Dirty Vray Materials裡面介紹的材質有大量geometry sensitive map,都跟尺度有關。
  2. 環境不同:金屬或玻璃物體需要適當的HDRI環境呈現,範例材質球可能用的跟你的HDRI差太多,所以效果也差很多
  3. 曝光不對:材質的最終呈現與鏡頭燈光亦有密切關係,如果燈打太量過曝,自然也無法重現出材質庫美美的效果。
  4. 材質庫過度複雜,難以重新調整。例如Grant Warwick - Mastering Vray 系列的材質球,雖然效果很逼真,但shader分層很多,如果要直接套用到自己的專案,需要花時間重新調整第1點提到的問題。
shading language。事實上材質的確有『語言』的特質。語言是要表達一種感覺,這種感覺跟堆砌的詞藻長短,用語的複雜度沒有絕對的關係。你可以用很短的句子創造出當下的心境,也可以寫首詩或是一段文章來表達。語言是有彈性的,你沒辦法由文學巨著的片段,拼湊出另一個優美文學。因為文章的美是來自於前後的結構。拼湊出的文章,沒有自身了解其每個單位的意思,很難展現出力道。像罐頭般,食之無味。

材質庫如SigerShaders品質相當棒,但實際用起來還是不如自己重新調整或是修改過後的shader,為什麼呢? 第 一點是跟銷售有關,SigerShaders每個材質貼圖都是統一格式化,解析度並不是很高,質感少了一點自然。金屬就分很多種金屬。可是就實際專案呢?並不應該這樣分金屬。筆者認為應該是分成金屬的大項然後讓使用者自己去選金屬類的presets。第二點是這些材質並沒有geometry sensitive map在裡面,所以材質表現的太均質。生鏽的金屬應該是在縫隙的地方比較鏽化,凸面的地方比較光亮才對。

真實世界的材質視非常複雜的。就好像你去圖書館翻書,隨便翻開每一頁都不同。即使是不鏽鋼,都有幾乎無限種的變化性。材質庫提供的是罐頭的食物,如果這樣的食材直接上餐桌,絕對不如手工菜。手工多了一點變化,這樣的變化把藝術感帶出來。

在心理上,觀眾往往會原諒眼前所看到的效果,去相信它是寫實的。比方說我們去看十年前的電影特效,我們眼睛會立即察覺這特效好假。同樣十年前的你再看二十年前的電影特效,亦是如此。 我們對材質寫實度的接受度,往往跟當前的最新技術有關,我們會依據當前的技術作為對寫實度的容忍度。因此這些材質庫的某些技術,比方說黃金我有用complex fresnel表現,跟沒有的比起來,現在來說可以看出差異; Shader有GGX 跟沒有GGX也是有差別。這也就是為什麼在創建寫實材質時,我們不應該用別的藝術家的CG作品當做參考,我們應該用真實的照片做參考。如果用CG作品當參考,很容易掉入降低標準的陷阱裡而不自知。

語言的另一個特性是非常具有彈性。如果一家Rendering software的材質設定有很多侷限,我們可以說這公司的材質已死。因為寫實材質的關鍵就是要能夠提供藝術家彈性的調整架構。例如V-Ray自身的各個shader可以相互支援,交錯串接,如此才能確保作家在拿起筆寫文章時能夠流暢地抒發感情。已前述的幾點來看,如果算圖引擎能提供由照片到把照片變成無縫貼圖這樣的工具的話,那會大幅提昇製作複雜shader的彈性。

總之,基本上如果你不了解材質庫中所用到的貼圖,texture map的串接原因,你不知道它為什麼要把Output設定為5,你不知道為什麼要把VRayDirt 設定z bias,你不知道這個SSS材質為何要把fog bias設定為-0.2....很難創造出有感覺的CG材質。

No comments: