这篇博客介绍了我的个人项目 —— HairStrandPlugin的立项和大体思路。
HairStrandPlugin总览
HairStrandPlugin是我的私人项目,可以用来实现毛发的设计、模拟和渲染。目前的效果(2016-09-03之前)为可以在我个人的笔记本(GTX850M 游戏开发者居然还用着这么差的笔记本,求路过的土豪打赏……)上顺滑模拟超过2500根样条发丝。
效果查看:传送门
在目前来说,该插件可以使用Maya进行发型的设计,将发型导入UE4后便可以直接进行发丝的模拟和渲染了。
目前工具链的适配方面还有一些小问题,但是总体上不影响使用。
HairStrandPlugin的立项
HairStrandPlugin在一个月前立项。在练手插件GhostMeshPlugin完成后,我便开始了HairStrandPlugin的开发,将代码托管于coding.net平台之上。
小厂商的情怀
针对于发丝的模拟,各大游戏厂商都已经做的不错,例如爱丽丝疯狂回归中爱丽丝的发丝,古墓丽影中劳拉的发丝和最终幻想15中的发丝等均为高质量的发丝表现。
但是可惜除古墓丽影的TressFX已经开源外,我们这些小厂商也无法窥探到发丝技术的奥秘。又因为我当前所参与开发的项目隐龙传:影踪里主角陆天源也是长发造型,因此我便开始了这个项目,希望能够让没有太多背景的游戏开发者也可以在UE4上实现发丝的渲染。
Nvidia Hairworks
实际上,Nvidia也已经推出了Hairworks,专门用于毛发的渲染,而且效果相当不错。但是以来Hairworks采用的是基于DirectX 11 的Tessellation技术,换句话说,无法在移动平台和Play Station平台上使用。
另一方面,由于Nvidia Hairworks只公开了PC版本的库,因此针对于其他系统,Hairworks无法适配。
Apex Cloth
Apex Cloth是Nvidia推出的可以用于布料的模拟的工具,并且已经集成在UE4里面了。实际上在该插件还未完全实装的情况下,时至今日隐龙传:影踪也是正在使用Apex Cloth进行发丝的模拟。可是Apex Cloth在模拟发丝上还是有一些短板:
- 不支持移动平台,换句话说在Android平台上无法正常工作。
- 布料与发丝还是有差别,例如在Apex Cloth上的布料不会回弹。因此使用Apex Cloth模拟的发丝在表现发型上略不适应。
- Apex Cloth与UE4中的Skeletal Mesh完全绑定,换句话说一个Skeletal Mesh只能绑定一个类型的布料,该布料的信息无法在runtime进行调整。假如角色从陆地进入水中,布料阻尼damp无法进行调整,因此在水中的表现将会很怪异。
开发过程
到目前为止的开发过程大致可以分为两块:Particle Simulation和Strand Mesh Build。
初期针对于