編者按:本文首發於Chaos Group官方技術博客,作者是Christopher Nichols,譯者是台灣動畫製作者、Chaos Group官方技術支持Hammer Chen。
渲染頭發:采用生理學的方法
在計算器圖形中正確渲染頭發是一個相當複雜的問題有待解決。因為頭發是由成千上萬的半透明鱗片圓柱體構成的,所以頭發是一個相當複雜的表麵。這樣的構造很難決定光線如何傳輸,反射和反射。為了提高挑戰性,一頭普通頭發含有超過十萬根頭發,而且這些頭發非常精細––通常比單個像素更薄。
雖然以往的毛發著色器可得到不錯的近似值,但要得到恰到好處的頭發顏色和反射率卻很困難。在新的V-Ray Next,根據實用的可控製的毛發模型論文相關研究,用於生產級的路徑追蹤,我們創造了新的著色器,能夠更生理學上精確地渲染頭發。生物學上來說,頭發的顏色是由其黑色素(melanin)量決定的。因此,我們創建了簡單的黑色素滑塊來更真實地控製頭發的顏色,而不是設置任意顏色值。光澤同樣如此。新的設置現在基於真實頭發的生理學。雖然一開始你可能會不太熟悉,但對頭發生物學有一點了解,新的著色器更容易控製,而且更可預測結果。
頭發的顏色是由黑色素所控製
你的頭發顏色是由黑色素的量所決定的。越多黑色素,你的頭發會變得越黑。金發的黑色素很少,而黑色的頭發的數量最多。但實際上有兩種類型的黑色素可以控製你的頭發顏色:真黑素(eumelanin)和褐黑素 (pheomelanin)。這兩種黑色素的比例決定了你的頭發是多麼紅。如果你有更多的褐黑素,你的頭發會更紅。
在新的V-Ray頭發材質中,您隻需使用一個滑塊控件即可設置頭發顏色。值為0的是白發,值為1的是黑發。所有其他頭發的顏色都在兩者之間。要製作紅色頭發,首先將黑色素調整到所需的黑度,然後調整褐黑素滑塊,直到達到所需的紅色。這樣會設定真黑素與褐黑素的比例,其中0為全部真黑素,1為褐黑素。
黑色素的量
具有不同褐黑素比率的黑色素
那麼染發怎麼辦?
當然,並非每個人都保持自然的頭發顏色。人們經常使用染發劑,染發劑可以是任何顏色。了解決這個問題,我們將染發劑控製添加到新的染發劑中。要正確使用這個功能,你隻需要像發型師那樣思考。例如,要將頭發染成藍色,首先必須通過將其漂白為白色來消除顏色。這樣,顏色就會顯現出來。要在材質中完成此操作,隻需將黑色素水平降至接近0,然後根據需要添加染料顏色。
光澤度的一切就是跟頭發結構有關
為了讓頭發具有正確的光澤,你需要檢視頭發的幾何形狀。一般來說,當大多數人想到頭發時,他們認為它是光滑的圓筒。但是當你在顯微鏡下觀察頭發時,你會發現它實際上是由頭發根部蔓延開來的小鱗片組成的。由於這種形狀,頭發反射實際上具有方向性。
頭發的整體光澤度由兩個高光瓣(specular lobes)組成。在之前的著色器中,V-Ray對主要和次要高光分開進行控製。雖然這可能會讓您更好地控製每個高光瓣,但這樣讓找到合適的平衡更具挑戰性。在新的著色器中,兩個高光以更自然的方式鏈接,而且整體的光澤度(general glossiness)會同時控製兩個高光瓣。為了增強主要光澤度,隻需提高主光澤度即可獲得額外的光澤。
不同光澤度的強度
不同強度的光澤度
高光(highlight)本身會順著頭發的長度。但高光也可以圍繞單個發絲。這可以通過軟度參數(softness)來控製。柔軟度越高,亮點就越會圍繞個別發絲,並使其看起來更平滑,較低的柔軟度值會使頭發看起來更脆。
不同柔軟度比較
再去看顯微鏡底下的頭發,你會注意到每根發在線的鱗片背離頭發的根部。如果鱗片非常平坦,高光將顯得更加線性。如果刻度更具角度,高光會反彈得更多,產生些微的偏移。該效果由高光移位(highlight shift)參數控製。值越高,突出顯示將越遠離頭發根部。
不同高光移位的例子
並非每個發絲都一樣
如你所知,每根頭發的光澤和顏色並不相同。因此,可以引入紋理貼圖等細節來控製不同的顏色。此外,彼此相鄰的許多頭發可以有不同的顏色和高光,這是隨機化參數可幫助的地方。
隨機參數(Randomization)允許您在每根頭發之間引入變化,允許黑色素,柔軟度,光澤度和染料顏色的量發生一定的變化。這將給你一個更寫實頭發的顏色和光澤的呈現。
隨機黑色素顏色的例子
隨機光澤度的例子
更快速的頭發視覺開發,使用更簡單的設置,快速的V-Ray GPU的IPR
借助V-Ray GPU在IPR中的快速反饋,結合與V-Ray GPU兼容的新型頭發著色器,您可以在V-Ray Next中快速渲染自然的頭發。下麵的圖片是使用Ian Spriggs先生作製作他朋友Tony的肖像畫的原始場景。將著色器從V-Ray Next轉換為新的著色器後,我們能夠在很短的時間內生成頭發的外觀。
新的頭發著色器目前可用於V-Ray Next for 3ds Max Beta,並且可以在V-Ray和V-Ray GPU中渲染。歡迎加入beta測試版來嚐試一下。
參考文獻:
[1] Chiang et al. “A Practical and Controllable Hair and Fur Model for Production Path Tracing” – 2016
(https://benedikt-bitterli.me/pchfm/)
[2] Pharr “THE IMPLEMENTATION OF A HAIR SCATTERING MODEL” – 2016
(http://www.pbrt.org/hair.pdf)
[3] d’Eon et al. “An Energy-Conserving Hair Reflectance Model” – 2011
(http://www.eugenedeon.com/project/an-energy-conserving-hair-reflectance-model/)
[4] d’Eon et al. “An Energy-Conserving Hair Reflectance Model” post publication review – 2011
(https://publons.com/publon/2803/)
[5] d’Eon et al. “Importance Sampling for Physically-Based Hair Fiber Models” – 2013
(https://cg.ivd.kit.edu/publications/pubhanika/2013_hairbrief.pdf)
[6] d’Eon et al. “A Fiber Scattering Model with Non-Separable Lobes – Supplemental Report” – 2014
(http://www.eugenedeon.com/project/a-fiber-scattering-model-with-non-separable-lobes/)
[7] Marschner et al. “Light Scattering from Human Hair Fibers” – 2003
(http://www.graphics.stanford.edu/papers/hair/hair-sg03final.pdf)
[8] Zinke et al. “Light Scattering from Filaments” – 2007
(http://cg.cs.uni-bonn.de/project-pages/hairmodeling/documents/BFSDF_preprint_with_copyright_notice.pdf)
[9] Zinke (thesis) “Photo-Realistic Rendering of Fiber Assemblies” – 2008
(http://cg.cs.uni-bonn.de/en/publications/paper-details/Zinke2008a/)
[10] Jakob (thesis) “Light Transport On Path-Space Manifolds” – 2012
(https://ecommons.cornell.edu/handle/1813/34189)
[11] Yan et al. “Physically-Accurate Fur Reflectance: Modeling, Measurement and Rendering” – 2015
(http://people.eecs.berkeley.edu/~lingqi/publications/paper_fur.pdf)
[12] Yan et al. “An Efficient and Practical Near and Far Field Fur Reflectance Model” – 2017
(http://people.eecs.berkeley.edu/~lingqi/publications/paper_fur2.pdf)
作者 / Christopher Nichols,翻譯 / Hammer Chen
(譯文地址:http://vraymasters.cn/magazine/v-ray-next-the-science-behind-the-new-hair-shader/ ,
原文地址:https://www.chaosgroup.com/blog/v-ray-next-the-science-behind-the-new-hair-shader )