model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?( 二 )


文章插图
基于引导线制作如果要制作偏写实的头发,就需要更细致的调整,需要发丝间的穿插细节(Noise)和更多的发丝点缀。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
使用XGen可以基于引导线自动生成头发,可以轻易的调整头发的疏密,厚度等,美术大大需在此基础上进一步做后期处理“造型”,最后将这曲线转为面片输出给程序。这种方式适合用来做任何情况的头发,特别是在偏写实的情况下比直接操作Mesh更高效。大体步骤如下:
1.首先绘制引导线,进行简单的造型
【 model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?】
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
2.通过XGen工具来生成头发
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
3.美术师进一步通过工具造型,并转为面片输出给程序
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
头发贴图比较常用的头发贴图有下面几种:
Albedo:漫反射贴图
和Color一起组成最终头发的漫反射颜色。是头发渲染中不可或缺的贴图。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
Normal Map:法线贴图给模型提供更多的细节,一般是由高模渲染导出,在低模中使用,使低模在面数不足的情况下,依然保留高模的表面细节。一般来说也是不可或缺的。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
AO(Ambient Occlusion) Map:环境光遮蔽贴图增加发丝间阴影,完善的遮蔽细节,提升头发整体的体积感。非硬核写实游戏可以不关注,大部分游戏在开启自阴影后也能达到不错效果。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
Shift Map:偏移贴图用来模拟各项异性高光的“锯齿”效果。但目前而言,我看到的更多的实现方式是通过修改切线在法线方向上面偏移来计算实现。而不是读取贴图。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
Transparency Map:透明贴图可以简单理解为漫反射贴图的灰度化后的加工图。本质是做一个mask。增强发丝感。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
Ramp Map:渐变图顾名思义,非必须。
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
下面展示几个头发shader例子,篇幅原因不做进一步分析了:
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
model|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图
游戏引擎的Shader来渲染(TA)关于Shader的定位,主要是处理头发混叠、高光形状、动态光影下的表现和一些头发渲染过程的性能优化的。提升表现力上限更多的是靠模型和贴图。
研究了一点文章,尝试从理论层深入分析:
Kajiya-Kay Model (1989)
相关文章:https://xn--d6q620cxwmmvd/
Marschner Model (2003)
相关文章:https://www.graphics.stanford.edu/papers/hair/hair-sg03final.pdf
Scheuermann Model (2004)
相关文章:https://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Scheuermann_HairSketchSlides.pdf

经验总结扩展阅读