Hair Shader
1. 概述
Hair shader是专门用来渲染人类头发的
2. Shader参数
Shader参数 |
描述 |
Wind frequency |
设置顶点变化的速度 |
Wind wave0 amp |
设置顶点变形的量和幅度 |
Wind wave2 amp |
设置不同曲面上的顶点变化的量和幅度 |
Wind phase |
设置头发动画变形的随机化 |
Detail tiling |
设置细节tiling的幅度 |
Hair Color |
设置头发的颜色 |
Primary spec color |
设置镜面反射的颜色 |
Primary spec glossiness |
设置镜面反射的光泽度 |
Primary spec shift |
设置镜面反射的偏移 |
Secondary spec color |
设置次级镜面反射的颜色 |
Sceondary spec glossiness |
设置次级镜面反射的光泽度 |
Sceondary spec shift |
设置次级镜面反射偏移 |
Bump scale |
设置头发的Bump幅度 |
Rim multiplier |
设置边缘强度的乘数 |
Diffuse wrap |
设置漫反射遮蔽 |
View opacity |
设置观察点不透明度,这取决于摄像机角度 |
Fill multiplier |
|
3. 头发建模准则
由于在硬件方面AlphaBlending排序的限制,我们不能在这点上进行逐像素的排序,这样我们可以节省很多工作。所以我们需要一个非常廉价并且近似的方法:
渲染头发不透明区域(就是Alpha通道上为1的地方),然后渲染头发的背面,最后渲染头发的前面。
这种方式对于大多情况都适用,但也有不少限制,关于它的建模工作如下:
制作一个初始的头发套,这回是没有着色器,细节来源于头。
然后为所有头发片添加细节
重要提示:每个头发片使用单面建模。
4. 头发纹理准则
关于头发纹理,如果非常稀薄的头发就是让纹理的像素尽量完美,并尽可能少的做扭曲和旋转。这里有一个达成目标的方法,在Photoshop中制作一个非同一的噪波(uniform noise),然后进行模糊(strong MotionBlur)。
然后为头发纹理添加细节,着色噪点透明混合区域等等。
重要说明:透明混合区域我们要避免过多的透明混合区域,我们只尝试在头发末端区域添加透明区域。
为了得到发丝的效果,我们要开启纹理的各向异性选项。
Diffuse texture
Diffuse texture alpha channel
5. 使用Hair Shader
Hair Shader为了近似排序默认使用2面渲染,所以不要在材质属性中再开启双面渲染选项了。