虚幻引擎程序化湖泊生成工具

Houdini离线湖泊地貌生成

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

虚幻引擎湖泊地貌程序化生成工具,使用Houdini为引擎生成湖泊的水面模型,以及湖水的DepthMap。根据湖水和地形的接触线生成湖泊地貌的地形材质(Landscape Material),并利用地形材质的Material Layer Mask剔除场景中的植被。一切,都在引擎中程序化完成。

方案实现

在引擎中使用USplineComponent拖拽生成一条闭合的曲线,根据这个曲线框选的范围。使用UProceduralMeshComponent生成湖面的预览模型。在Houdini中生成湖水的模型和DepthMap,同时生成地形材质的Layer Mask。

没有使用 HoudiniEngine,所有接口方法均使用引擎的 C++实现。

技术特性

  • 引擎中通过Spline实时控制湖泊区域范围; 
  • 将Spline曲线和工具参数后台传给Houdini;
  • 在Houdini中生成湖水模型和DepthMap贴图并传回引擎;
  • 根据水面和地形接触线生成地表材质;
  • 根据生成的地形材质Layer Mask剔除植被;

参数设置

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

工具配置文件参数

湖泊工具的Details参数面板上的参数配置,控制每个工具独特的参数。

湖泊工具参数

Houdini算法

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

Houdini中节点算法

Developed by 徐門子美(Kevin).