欢迎光临散文网 会员登陆 & 注册

UE5管理内容-毛发渲染

2023-03-07 16:35 作者:梦起梦落梦若风  | 我要投稿

传统的实时毛发渲染采用基于发片的渲染方案(或其他类似技术)。 在基于发片的工作流中,通过使用大量卡片状的发片来近似模拟大量毛发的形状和运动。而虚幻引擎的Groom系统和工具允许你单独渲染每一根发丝/发束,从而大幅提高毛发实时模拟的视觉逼真度。 

虽然毛发Groom当前尚无标准文件格式,但Groom系统提供了一种基于Alembic(.abc)文件格式和特定命名规范的方案,帮助引擎从建模软件导出的毛发文件中提取数据。Groom系统还提供了对单个Alembic文件中的多个毛发组(例如头发、绒毛、胡须、睫毛和眉毛)、一流的毛发着色器和渲染系统,以及使用Niagara的动态集成的支持。 

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


在项目中启用毛发

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

要使其中每一项生效,需要重启编辑器。


项目设置

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


插件浏览器

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


  • Alembic Groom导入器

  • Groom

基本工作流

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


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

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

  3. 将该Alembic Groom文件导入Unreal Engine。

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

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

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

  7. 设置并指定毛发材质

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

 


Groom资产

Groom 资产表示你导入的Alembic(.abc)文件的毛发Groom,并且存储在内容浏览器(Content Browser)中。双击Groom资产将打开 Groom资产编辑器(Groom Asset Editor) 。


你可以使用Groom资产编辑器管理和编辑Groom的各个部分。你将能够执行以下操作:

  • 分配材质

  • 创建表示发束、发片或网格体的细节级别网格体

  • 启用和配置物理设置

  • 使用不同的视图模式调试Groom

右键点击内容浏览器中的Groom资产后,有多个额外的 Groom操作可用于:


  • 根据Groom导入选项 重建(Rebuild) 所选Groom的构建设置。

  • 创建绑定(Create Binding) 以生成用于将Groom附加到骨骼网格体的绑定资产。

  • 使用所选Groom为毛囊和发束 创建纹理(Create Textures)

生成发束纹理

使用 Groom 资产,你可以根据导入的Groom中的发束数据创建纹理。你可以为骨骼网格体生成毛囊遮罩,更好地将毛发与其网格体表面混合。你还可以创建多个发束纹理,以用于创建毛发网格体或发片。 

你的Groom可用于生成可以应用于网格体的纹理。

深度纹理

切线纹理
带生成的纹理的毛发网格体



设置毛发材质

为使毛发几何体正确渲染,它需要分配有 着色模型(Shading Model) 设置为 毛发(Hair) 的材质。 


你还需要在用法(Usage)类别下启用 用于发束(Use with Hair Strands) 。这应该会在首次应用于Groom时自动启用,但如果未启用,你可以手动将其启用。 

下面是使用 毛发属性(Hair Attributes) 表达式的示例毛发材质:


绑定资产

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


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

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


启用物理模拟

打开 Groom资产编辑器(Groom Asset Editor) ,并从 物理(Physics) 面板选中 解算器设置(Solver Settings) 下的 启用模拟(Enable Simulation) 旁边的复选框,启用Groom上的物理。


启用后,你可以浏览影响Groom组件的各种物理设置。


调试毛发

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


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

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

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

HairWorks用户

有些人会使用NVIDIA的毛发解决方案 HairWorks ,它包含DCC工具集成以及实时毛发渲染和模拟,需要注意的是,虚幻引擎自4.16版本开始就废弃了HairWorks。我们的长期计划是让Groom系统功能帮助为目前使用HairWorks集成的人提供迁移路径。

虽然NVIDIA通过其GitHub分支为UE4提供的最后一个正式HairWorks版本是4.16版本,但有各种补丁和升级已创建并在线提供,不过它们不受官方支持。


UE5管理内容-毛发渲染的评论 (共 条)

分享到微博请遵守国家法律