标准头发是一个基于物理的着色器,它基于镜面反射的 d'Eon 模型和漫反射的 Zinke 模型渲染头发和毛发。可通过为基础颜色、粗糙度和折射率设置几个简单的参数来获取逼真的结果。
标准头发着色器设计为与 Arnold 的曲线形状节点一起使用,但无法很好地处理其他类型的形状。其他着色器(如 Lambert)也适用于曲线,但不能准确地模拟头发散射。
纹理头发
将纹理连接到头发时,所需的工作流是将“黑色素”(Melanin)设置为 0,并将纹理链接到“基础颜色”(Base Color)。通常,“漫反射”(Diffuse)可以保留为 0。“基础颜色”(Base Color)将影响次镜面反射和透射,就像“黑色素”(Melanin)一样。它们只不过是控制头发中吸收的两种不同方式。可以将“黑色素”(Melanin)视为一种更易于拾取适合人类头发的“基础颜色”(Base Color)的方式,但如果您有纹理,则可以禁用“黑色素”(Melanin)。
无法直接将头发着色器参数映射到标准头发,这是由于着色模型的差别很大。镜面反射颜色、镜面反射 2 颜色和透射颜色仍可单独控制,但现在会自动使用菲涅尔保持能量守恒,而且需要变得更亮以获得相似的外观。漫反射组件需要变亮以与头发匹配。
但是,为了获得精确的结果,建议完全不使用漫散射或镜面反射染色。这些参数提供在物理上不准确的艺术控制,通常不再需要。
镜面反射 2 / 5 区别
为了减少白色/浅色头发的噪波,需要增加“镜面反射”(Specular)和/或“摄影机(AA)”(Camera (AA))采样数。
主要参数
base
头发的亮度,基础颜色的倍增。
base_color
头发的颜色。这会控制头发纤维内部的吸收,从而在灯光向周围散射时将该参数所代表的颜色提供给头发。请注意,对于金色或亮色头发,需要使用更多的镜面反射反弹来获得精确的结果。
建议将“基础颜色”(Base Color)保留为纯白色,并改用黑色素控件。这将保证颜色比较“合理”,也就是更像人类头发的外观。
此参数还可以连接到纹理贴图来改变头发颜色。
也可以使用渐变纹理链接到基础色
melanin
使用“黑色素”(Melanin)参数可以通过控制头发中的黑色素数量来生成自然的头发颜色。
颜色范围从金色(大约为 0.2)到红色和褐色(大约为 0.5)再到黑色(为 1.0)。
要使用纹理贴图控制头发颜色,请将“黑色素”(Melanin)设置为 0,并改用基础颜色。
melanin_randomize
随机化头发纤维中的黑色素数量,以获得不同的头发颜色(0 到 1)。
注:黑色素 0.5 的情况下
roughness
控制头发镜面反射和透射的粗糙度。值越小,镜面反射高光越清晰明亮;值越大,高光越柔和。
shift
头发纤维的缩放角度,从主镜面反射和次镜面反射远离最佳镜像方向偏移。为了获得逼真的人类头发结果,应当使用 0 度和 10 度之间的小角度(对于动物毛发,值可能会有所不同)。
下面提供了一些建议值:
皮埃蒙特人:2.8
浅褐色欧洲人:2.9
深褐色欧洲人:3.0
印度人:3.7
日本人:3.6
中国人:3.6
非裔美国人:2.3
specular_tint
主镜面反射贡献的比例,它将与主镜面反射颜色相乘。
对于真实、干净的头发,颜色应设置为白色。对于真实的头发,建议将此值保留为默认值(1.0/白色)。
specular2_tint
次镜面反射贡献的比例,它将与次镜面反射染色相乘。对于真实、干净的头发,此颜色应设置为白色,以使用基础颜色对反射进行染色。
对于真实的头发,建议将此值保留为默认值 (1.0)。
transmission_tint
透射贡献的比例,它将与透射染色相乘。对于真实、干净的头发,此颜色应设置为白色,以使用基础颜色对透射进行染色。
对于真实的头发,建议将此值保留为默认值 (1.0)。
下面的参数提供额外的艺术控制,但不是获得逼真的结果所需的。
diffuse
控制头发的漫反射,0 表示完全镜面反射散射,而 1 表示完全漫散射。对于典型的真实头发,无需漫反射组件。脏或损坏的头发可以使用漫散射进行近似模拟。
漫反射不应该用于真实头发。真实头发没有漫反射组件(除非化妆、喷胶等)。此参数在物理上不正确,提供它纯粹是为了获得额外的艺术控制。它不是获得逼真结果所需的。
diffuse_color
漫散射颜色。
此参数在物理上不正确,提供它纯粹是为了获得额外的艺术控制。它不是获得逼真结果所需的。
emission_color
用作自发光的颜色。
此参数在物理上不正确,提供它纯粹是为了获得额外的艺术控制。它不是获得逼真结果所需的。
opacity
头发的不透明度。此参数默认设置为全白色,意味着头发完全不透明,为了获得最佳效果,应当将它保留为默认设置。
调整此值来降低头发的不透明度(也就是说,增加头发的透明度)时,有时可以让头发显得更加柔顺,但代价是显著增加渲染时间。如果未设置为全白色,请确保已在头发对象的“Arnold 参数”(Arnold Parameters)特性中关闭“不透明”(Opaque)标志,否则 Arnold 将绕过与透明度相关的计算来优化渲染时间。
此参数在物理上不正确,提供它纯粹是为了获得额外的艺术控制。它不是获得逼真结果所需的。
indirect_diffuse
仅从间接光源接收的漫反射灯光量。1 以外的值在物理上不正确。
indirect_specular
仅从间接来源接收的镜面反射度。1 以外的值在物理上不正确。
extra_depth
仅对此着色器添加额外的镜面反射光线深度。
默认情况下金色头发会正确渲染,而无需先增加 GI_specular_samples。
对于金色或亮色头发,必须使用大量的镜面反射反弹来准确地模拟多元散射。
如果渲染成本太高,则可以改为将漫反射组件用作近似值。
镜面反射光线深度 1 / 8 的对比
✗笑哭了✗ ✗笑哭了✗ ✗笑哭了✗ ✗笑哭了✗ ✗笑哭了✗ ✗笑哭了✗ ✗笑哭了✗
waaaaaaaaaaaaaaaaaaaaa
先试试看
毛发材质连接纹理贴图并不能按照模型的uv更改其颜色,请问怎么解决呢
找到解决办法了吗,我也遇到这个问题了