Hello . 大家好
今天给大家带来Fur Shader的简单实现
我是王掌柜
一、毛发物理性质归纳材质间的区别是由其材质特性决定的,所以在引擎中利用shader实现一个具体的材质效果之前,需要归纳其核心物理特征构建一个概念模型作为指导,寻找核心方法利用代码、贴图加以最终实现。
图1.1 毛发参考图人造纤维(图片来源:百度)
图1.2 毛发参考图动物皮毛(图片来源:百度)
基于PBR的材质共性(光滑度|金属度|固有色):也就是说欲创建的Fur Shader要有Metallic,Smoothness(or Roughness)的参数槽。
基于毛发材质的几点特性:
1 毛发长度:Fur Length,此外还有毛发长短不一的特征。
2 毛发根部到尖端由粗到细的变化:需要两个变量来分别控制根部和尖端
3 毛茸茸的感觉:这个需要利用核心方法ShellPass以及模拟毛发边缘衰减来进一步辅助表现
4 毛发受重力影响:这里要注意重力是一个矢量(Vector),有大小和方向,故这里也需要两个参量来模拟
5 毛发颜色:一般采用贴图控制
二、制作流程1. 美术素材制作。这里面你可以在网上搜索相关毛发图或是自己绘制的颜色图,唯一要注意的是需要开个Alpha通道,并制作一张噪点图放入该通道之中。这张噪点图很重要,它控制着毛发的最终长度、分布以及显示。制作了两张噪点图,一张是WhiteNoise、一张PerlinNoise。在PS里我将两张噪声图不透明度降低并合并,形成放在颜色图A通道里的最终