1.UE5 ModelingMode & GeometryScript源码学习(一)
UE5 ModelingMode & GeometryScript源码学习(一)
前言
ModelingMode是商商城虚幻引擎5.0后的新增功能,用于直接在引擎中进行3D建模,城源无需外接工具,源码实现快速原型设计和特定需求的商商城模型创建。GeometryScript是城源用于通过编程方式创建和操控3D几何体的系统,支持蓝图或Python脚本,源码域名管理系统源码提供灵活控制能力。商商城
本文主要围绕ModelingMode与GeometryScript源码学习展开,城源涵盖DMC简介、源码查找感兴趣功能源码、商商城动态网格到静态网格的城源代码介绍。
起因
在虚幻4中,源码通过RuntimeMeshComponent或ProceduralMeshComponent组件实现简单模型的商商城java嵌入matlab源码程序化生成。动态网格组件(DynamicMeshComponent)在UE5中提供了额外功能,城源如三角面级别处理、源码转换为StaticMesh/Volume、烘焙贴图和编辑UV等。
将动态网格对象转换为静态网格对象时,发现官方文档对DMC与PMC对比信息不直接涉及此转换。手游源码搭建通过搜索发现,DynamicMesh对象转换为StaticMesh对象的代码位于Source/Runtime/MeshConversion目录下的UE::Modeling::CreateMeshObject函数中。
在UE::Modeling::CreateMeshObject函数内,使用UEditorModelingObjectsCreationAPI对象进行动态网格到静态网格的转换,通过HasMoveVariants()函数接受右值引用参数。UEditorModelingObjectsCreationAPI::CreateMeshObject函数进一步处理转换参数,lucene 源码分析 查询UE::Modeling::CreateStaticMeshAsset函数负责创建完整的静态网格资产。
总结转换流程,DynamicMesh对象首先收集世界、变换、资产名称和材质信息,通过FCreateMeshObjectParams对象传递给UE::Modeling::CreateMeshObject函数,安卓彩蛋源码该函数调用UE::Modeling::CreateStaticMeshAsset函数创建静态网格资产。
转换为静态网格后,程序创建了一个静态网格Actor和组件。此过程涉及静态网格属性设置,最终返回FCreateMeshObjectResult对象表示转换成功。
转换静态网格为Volume、动态网格同样在相关函数中实现。
在Modeling Mode中添加基础形状涉及UInteractiveToolManager::DeactivateToolInternal函数,当接受基础形状时,调用UAddPrimitiveTool::GenerateAsset函数,根据面板选择的输出类型创建模型。
最后,UAddPrimitiveTool::Setup函数创建PreviewMesh对象,UAddPrimitiveTool::UpdatePreviewMesh()函数中通过UAddPrimitiveTool::GenerateMesh生成网格数据填充FDynamicMesh3对象,进而更新到PreviewMesh中。
文章总结了Modeling Mode与GeometryScript源码的学习路径,从动态网格到静态网格的转换、基础形状添加到输出类型对应函数,提供了一条完整的流程概述。