编者按:本文首发于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 )