虚幻引擎程序化河流生成工具

Houdini离线河流地貌生成

Posted by 徐門子美(Kevin) on 2020-09-10

程序化河流生成工具是根据《地平线·零之曙光》的技术分享,在Houdini中实现并优化了它的实现和算法,然后通过UE4端的开发,将方案工具化,同时进行了参数序列化的设计,兼顾了美术效果、功能和易用性。

原型

基于《地平线·零之曙光》的技术分享。

Horizon Zero Dawn: Procedural Rivers & Wires by Ben Schrijvers

方案实现

河流生成的步骤大致如下:

  1. 在引擎中创建基础曲线信息,设置参数; 
  2. 将曲线和参数传入Houdini,进行计算;
  3. 将最终结果传回引擎,查看生成效果;

技术特性

  • 引擎中使用Spline曲线控制河流流向,Spline曲线自动吸附地形; 
  • 引擎中Spline曲线信息和工具参数通过后台传入Houdini; 
  • Houdini中河流曲线上的点向自动向低处滑落; 
  • Houdini中河流曲线始终从高往低,会自动纠正河流流向;
  • Houdini中河流会侵蚀地形,生成峡谷地貌;
  • 根据水面和地形接触线生成地表材质;
  • 根据河流生成的地形材质Mask剔除植被;

参数设置

河流工具使用自定义的UObject作为参数输入,这个文件一般会配置统一的参数(文件保存路径,材质等),可以被重复使用。

工具配置文件参数

同时,用户需要通过工具Actor的Details参数面板上的参数,控制每条河流独特的参数(宽度,深度等)。

河流工具参数

Houdini算法

Houdini拿到Unreal传过来的曲线和参数后,在一个CompileBlock中完成地形和河流模型生成,极大提高节点执行效率。

Houdini中节点算法

Developed by 徐門子美(Kevin).