毛发渲染与模拟

概述在UE4内如何导入、渲染和模拟发束。

Choose your operating system:

Windows

macOS

Linux

传统的实时毛发是使用基于卡的渲染或其他类似技术创建的。 在基于卡的工作流中,少量的大型平整板片用于提供大量单独毛发的大致形状和运动。 使用新的 毛发渲染与模拟 功能,可渲染各个单独发束。单独渲染每根毛发可大幅提高实时模拟毛发的视觉逼真度。

虽然毛发Groom当前不存在标准文件格式,但此更新提供了基于命名惯例的方案,以使用Alembic文件摄取从DCC工具导入的Groom数据。 本更新还提供对单个Alembic文件中的多个毛发组(例如头发、绒毛、胡须、睫毛和眉毛)、一流的毛发着色器和渲染系统,以及使用Niagara的动态集成的支持。

本更新旨在最低限度地实现发束导入、渲染和模拟。本更新不提供毛发梳理解决方案。毛发的定型或梳理需在外部DCC工具中执行,例如Maya中的XGen、Ornatrix、Yeti、刮脸和理发或Houdini。

HairWorks用户

NVIDIA提供了名为HairWorks的毛发解决方案。HairWorks包含DCC工具集成和毛发实时渲染与模拟。自4.16版起,UE4中的HairWorks就被弃用了,新的毛发渲染与模拟功能的长期计划是,帮助为目前正在使用HairWorks集成的用户提供迁移途径。

UE4的上一个可用的官方NVIDIA版HairWorks是4.16版,但网上已出现各种补丁和升级(尽管这些都不受官方支持)。

此实现并非HairWorks的直接替代品,仅是外部DCC工具中梳理毛发的渲染与模拟功能的临时解决方案。

在项目中启用毛发

要在项目中使用毛发,必须启用以下设置和插件。

项目设置

转至 编辑(Edit) > 项目设置(Project Setting),打开项目设置。在 渲染(Rendering)> 优化(Optimizations) 中,启用 支持计算皮肤缓存(Support Compute Skin Cache)。

HairProjectSettings.png

需重启编辑器,以使这些设置生效。

插件浏览器

转至 编辑(Edit) > 插件(Plugins),打开插件浏览器窗口。在 几何体(Geometry) 类别下,启用这些插件:

GroomPlugins.png

  • Alembic Groom Importer

  • Groom

需重启编辑器,以使这些插件生效。

基本工作流

以下流程图描述将自己的毛发Groom导入UE4,并连接到可动画化的骨骼网格体角色的高级流程。

HairBasicFlow.png

  1. 在喜好的DCC应用程序中创建毛发Groom。

  2. 将毛发Groom导出为Alembic (*.abc)文件。

  3. 将该Alembic Groom文件导入UE4。

  4. (可选)在内容浏览器中为你的骨架网格体创建一个绑定资产(Binding Asset)。

  5. 将Groom资产置于世界场景中(作为蓝图中的Actor)。

  6. 使用转移蒙皮将Groom组件(Actor)连接到骨骼网格体插槽。

  7. 设置并指定毛发材质

完成这些步骤后,就获得了交互式groom,可用于正在动画化的已连接骨骼网格体。

遵循毛发渲染与模拟快速入门指南以更详细地执行这些步骤。

有关设置毛发Groom以从/向UE4导出/导入的更多详情,参见Alembic for Grooms规格参考页面,其中包含有关启用UE4以直接导入groom的方案。

毛发属性材质表达式示例

为了正确渲染毛发几何体,需要将指定材质的 着色模型(Shading Model) 设为 毛发(Hair)。

Material_Settings.png

您还需要在用途类别下启用 使用发束(Use with Hair Strands)。这应在应用于Groom时自动启用,若未自动启用,可手动启用。

以下是使用 Hair Attributes 表达式的毛发材质示例:

Material_HairExample.png

绑定资产

绑定资产用于将Groom组件添加并蒙皮到骨骼网格体上。通过这种方法,Groom可以指定给需要用到它的骨骼网格体,还能指定给享有相同拓扑的骨骼网格体。

是否创建绑定资产来将Groom绑定到骨骼网格体上完全由你自己决定。不过,假如你不提供绑定资产,投射就会实时完成,进而会在启动时产生较大的GPU开销。

BindingAsset.png

在内容浏览器中右键点击 Groom资产(Groom Asset) 并在快捷菜单中选择 创建绑定(Create Binding)。在创建绑定时,请使用 Groom绑定选项(Groom Binding Options) 窗口指定 目标骨骼网格体(Target Skeletal Mesh) 和 源骨骼网格体(Source Skeletal Mesh)。

创建绑定资产时,必须指定 目标骨骼网格体(Target Skeletal Mesh),否则在此期间不会创建任何绑定。

毛发物理和Niagara

要对角色毛发应用物理效果,可打开Groom资产,并在 毛发物理效果(Hair Physics) 分类下的解算器设置(Solver Settings)中勾选 启用模拟(Enable Simulation)。

HairPhysicsGroomSettings.png

调试毛发

使用以下控制台变量调试项目中的毛发:

控制台变量

说明

r.HairStrands.DebugMode

启用以下命令模式之一,将有关毛发渲染的各种统计信息和调试信息绘制到屏幕:

  • 0 - 关闭

  • 1 - 群集信息

  • 2 - 所有DOM光源边界

  • 3 - 屏幕投影群集

  • 4 - 深度不透明贴图

  • 5 - 亚像素样本计数

  • 6 - TAA解析类型(常规/响应)

  • 7 - 毛发覆盖类型

  • 8 - 毛发密度体积

  • 9 - 毛发切线体积

  • 10 - 毛发底色体积

  • 11 - 毛发粗糙度体积

  • 12 - 毛发网格体投影

  • 13 - 毛发覆盖

r.HairStrands.StrandMode

启用此命令以渲染场景中发束的选定调试模式:

  • 0 - 关闭

  • 1 - 模拟发束

  • 2 - 渲染发束影响

  • 3 - 根UV

  • 4 - 根UV UDIM纹理索引

  • 5 - 毛发UV

  • 6 - 毛发种子

  • 7 - 毛发尺寸

  • 8 - 毛发半径变体

  • 9 - 毛发顶点颜色

  • 10 - 毛发顶点粗糙度

已知限制

  • 帧率取决于groom大小、分辨率,以及采用的底层硬件。例如,对于1080p的人类groom,底层硬件应为2080Ti,帧率30Hz或更高。

  • 视图模式尚不支持毛发。

  • 多视图(毛发在多个开放窗口上可见)尚不受支持,或会导致出现瑕疵。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消