毛发渲染与模拟

概述在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或更高。

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

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

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