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

文丨Mr_ctong
腾讯互动娱乐 工程师
导语
在游戏制作中,人物的占比越来越大而且已经成为一个体系。渲染和优化的时候都会为角色量身定制一套方案。甚至为了角色表现,会为展示在大厅的角色单独做一套效果和资源。本篇主要从角色渲染中最难的头发渲染开始说起。本人水平有限,如有错误,请不吝赐教。
大纲


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

头发模型科普一下实时渲染和离线渲染的区别。
实时渲染:计算机需要在运行时生成所有的3D模型、贴图等等,并以尽可能快的速度(每秒30帧以上)显示给用户。
离线渲染:是将每帧的画面渲染成图像格式,然后将静止的图像或图像序列(1秒24帧)合成,转变为你所看到的动态画面。
实时基于线的头发渲染是困难的:
1.发丝数量多,人体一般有8W~13W根头发
2.头发种类繁多,形式多样,不同颜色的头发对光线的吸收不同
3.在角色渲染中,复杂的头发渲染可能占用角色25%左右的渲染时间
所以在手游中,基于线的头发渲染是不现实的。目前主流的hairwork也是把头发变成面片模型。


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

[ 基于线 ]

迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

[ 基于面片 ]注:针对目前硬件设备(手机)水平,如果要逐发丝渲染,开销过大,采用模型分块绘制是一种在效率和效果之间寻求的一种妥协方案。
手游制作头发主要分以下2步骤:
1.Maya的XGen等工具制作头发模型和贴图(美术工作)
2.应用游戏引擎的Shader来渲染(TA和程序工作)
头发模型和贴图的制作(美术)
这一部分主要是美术来完成,对最终成品有至关重要的影响!
对制作流程感兴趣的可以参考XGen学习路径:
https://knowledge.autodesk.com/zh-hans/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2018/CHS/Maya-CharEffEnvBuild/files/GUID-C0470142-600B-4615-8110-EC779934DF5F-htm.html
注:
1.制作人物角色部件之前,最好统一单位大小,Maya通常是厘米cm,3dMAX通常是英寸inch,Unity则是米m。建议使用现实世界物体的尺寸,因为这样会影响光照的计算、物理效果模拟等与现实世界相关的功能。
2.maya或3dMax中用Stingray PBS材质制作的效果,可以原汁原味的还原到Unity2018.1以上的版本中(用StandardShader)
3.正方向对齐。Unity是左手坐标系,3dMax是右手坐标系,导入后要旋转个180度挺不方便的,建议美术制作过程中就以Unity中的坐标系为基础。
一般的,模型和贴图有写实与非写实区分,从卡通到写实的表现如下:


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

根据不同的发型定位一般有不同的制作方式:

迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

基于网格制作如果是制作偏卡通向的发型,可以直接操作网格的点、线、面来制作。卡通效果的头发可以是一坨坨的(如下图),即使丢失一些发丝间的细节也不会有太大影响,美术师逐一制作组成头发即可。
这种方式虽然比较传统,但胜在简单,适合用来制作卡通风格的头发。


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

基于引导线制作如果要制作偏写实的头发,就需要更细致的调整,需要发丝间的穿插细节(Noise)和更多的发丝点缀。


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

使用XGen可以基于引导线自动生成头发,可以轻易的调整头发的疏密,厚度等,美术大大需在此基础上进一步做后期处理“造型”,最后将这曲线转为面片输出给程序。这种方式适合用来做任何情况的头发,特别是在偏写实的情况下比直接操作Mesh更高效。大体步骤如下:
1.首先绘制引导线,进行简单的造型


迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图

2.通过XGen工具来生成头发

迷人|头发渲染的前世今生:如何在游戏中拥有一头迷人秀发?
文章插图


推荐阅读