Skip to content

Cloth

前面描述的所有标准材料模型都是为了在宏观和微观层面上模拟致密表面而设计的。然而,衣服和织物通常是由松散连接的线制成的,这些线可以吸收和散射入射光。与硬表面相比,布料的特点是具有较大的衰减和模糊照明,这是由向前/向后散射引起的。一些织物也表现出双色的高光色(例如天鹅绒)。

下图显示了标准材料模型如何无法捕获牛仔织物样品的外观。表面看起来很坚硬(几乎像塑料一样),更像一块防水布而不是一件衣服。这张图也显示了由吸收和散射引起的较软的镜面瓣对于织物的忠实再现是多么重要。左侧是标准材质,右侧是Cloth模型材质。

天鹅绒是布料材质模型的一个有趣用例。如下图所示,由于向前和向后散射,这种类型的织物显示出强烈的边缘照明。这些散射事件是由纤维在织物表面直立引起的。当入射光来自与观察方向相反的方向时,光纤将向前散射光。同样,当入射光来自与观察方向相同的方向时,光纤会将光向后散射。

重要的是要注意,有些类型的织物仍然是最好的模拟硬表面材料模型。例如,皮革、丝绸和缎子可以使用标准或各向异性材料模型进行重建。

布料材料模型包含了之前为标准材料模型定义的所有参数,除了金属和反射率。修改了sheenColor,增加了subsurfaceColor。

ParameterDefinition
sheenColor用于创建双色织物,如天鹅绒 (defaults to $\sqrt{baseColor}$)
subsurfaceColor通过材料散射和吸收后的漫射色着色

要创建类似天鹅绒的材料,baseColor可以设置为黑色(或深色)。色度信息应该使用sheenColor来表达。要创建更多常见的织物,如牛仔布、棉布等,使用基本色的色度,并使用默认的光泽色或将光泽色设置为基本色的亮度。

!!! Note: 要查看粗糙度参数的效果,请确保sheenColor比baseColor更亮。这可以用来创建一个模糊的效果。将baseColor的亮度作为sheenColor将产生一种相当自然的效果,适用于普通布料。深色的底色与明亮/饱和的光泽色相结合可以创造出天鹅绒。

!!! Note: subsurfaceColor参数应该小心使用。高值会干扰某些区域的阴影。它最适合于通过材料的细微传输效果。

参数详解:

  • sheenColor:sheenColor属性可以用来直接修改镜面反射率。它提供了更好的控制布料的外观,并提供了创建双色镜面材料的能力。下图展示了一个蓝色织物,左边无sheenColor,右侧有sheenColor的对比。

  • subsurfaceColor: subsurfaceColor属性不是基于物理的,可以用来模拟某些类型织物中光的散射、部分吸收和再发射。这对于制作柔软的织物特别有用。注意,开启该属性带来性能消耗。下图展示了一个白色的织物,施加一个棕色的subsurfaceColor。对比显示是左侧没有施加,右侧施加。

!!! Note: cloth模型可以看作Lit这种标准材质的一个变体,其中甚至出现不合符物理的参数和计算,但这本身并不破坏整体效果,在艺术表达上可行。我们再做自定义的效果衍生的同时,应尽量使其符合物理,如有例外,一定非常清楚自己的行为。