虽然说目前已经有高级的基于光谱与多层材质的皮肤SSS解决方案,包括《A Spectral BSSRDF for Shading Human Skin》与最新的《A Layered, Heterogeneous Reflectance Model for Acquiring and Rendering Human Skin》,效果出色,但是相对于实际CG应用而言,能够让艺术家快速准确的实现他们头脑中所想要的结果才是最终的研发目的,而且最重要的是,CG生产中所表现的对象不一定是现实中存在的,比如绿巨人,这就导致复杂的处理模型变得高度非线性,无法从实际情况出发开始调整。所以对于实际应用来说,《A Rapid Hierarchical Rendering Technique for Translucent Materials》中表述的Single Dipole Diffusion模型由于参数少,效果可以直接掌控,我觉得是比较好的应用级解决方案。目前在PIXAR RenderMan 13.5、blender中早就有各自的实现。而需要注意的是,mental ray for maya中提供的fast_sss系列Shader将SSS分为Forward、Backward Scattering组分,经过简单的线性混合一样也可以模拟SSS效果,而且效果可控,可是个比较好的选择。
为了提供给艺术家准确的参照,我参考了MERL/ETH的人脸扫描数据库中的数据,并且将其所有的数据从MatLab矩阵格式转换为XML格式。此数据库总共有156个样本,涵盖了各种肤色与不同年龄阶段的人脸10个部分的Albedo与Torrance-Sparrow BRDF的系数数据。这里是XML版本的压缩包下载。详情请看这里。使用前请遵照MERL/ETH的版权声明,仅供用于非商业教育研究用途。
整个流程归纳起来可以是这样的,首先由最高艺术指导确定所需要的效果,由TD与贴图艺术家一起根据concept,由TD指导并修正艺术家绘制的Diffuse图的数值分布,然后由TD实验各个部分所需要的DMFP与BRDF系数,提供给艺术家进行绘制,并在Shader中提供足够的参数进行各个组分分布的独立修正。Diffuse Mean Free Path(DMFP)也是TD需要解决的系数,将其bake入RenderMan的点云后由ptfilter进行计算。DMFP系数对效果的影响巨大,下面三组是不同DMFP组分调整结果。
下面是我利用现有模型简单制作的一个人脸模型,实践了整个流程,包括实验测定TS所需要的m与\rho_s与DMFP,手工在PS中绘制FP32格式的贴图,不过鉴于条件所限没有能够后期校色,在不同显示设备上的效果差距巨大,所以离实际产品级素质还是有巨大的差距。我在写Latex格式的完整文档,敬请期待。