1.UE5 ModelingMode & GeometryScript源码学习(一)
UE5 ModelingMode & GeometryScript源码学习(一)
前言
ModelingMode是商商城虚幻引擎5.0后的新增功能,用于直接在引擎中进行3D建模,城源无需外接工具,源码实现快速原型设计和特定需求的商商城模型创建。GeometryScript是城源用于通过编程方式创建和操控3D几何体的系统,支持蓝图或Python脚本,源码romos源码提供灵活控制能力。商商城
本文主要围绕ModelingMode与GeometryScript源码学习展开,城源涵盖DMC简介、源码查找感兴趣功能源码、商商城动态网格到静态网格的城源代码介绍。
起因
在虚幻4中,源码通过RuntimeMeshComponent或ProceduralMeshComponent组件实现简单模型的商商城十三水透视源码程序化生成。动态网格组件(DynamicMeshComponent)在UE5中提供了额外功能,城源如三角面级别处理、源码转换为StaticMesh/Volume、烘焙贴图和编辑UV等。
将动态网格对象转换为静态网格对象时,发现官方文档对DMC与PMC对比信息不直接涉及此转换。小黑屋导航源码通过搜索发现,DynamicMesh对象转换为StaticMesh对象的代码位于Source/Runtime/MeshConversion目录下的UE::Modeling::CreateMeshObject函数中。
在UE::Modeling::CreateMeshObject函数内,使用UEditorModelingObjectsCreationAPI对象进行动态网格到静态网格的转换,通过HasMoveVariants()函数接受右值引用参数。UEditorModelingObjectsCreationAPI::CreateMeshObject函数进一步处理转换参数,sharding-proxy源码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源码的学习路径,从动态网格到静态网格的转换、基础形状添加到输出类型对应函数,提供了一条完整的流程概述。
陳佩琪自曝夫妻「不滿」急遽升高中 柯文哲知河東獅吼...
南方朔:「復甦」這地方,我們已回不去了!|天下雜誌
打臉國民黨? 韓國瑜拍板不召開「朝野協商」
她用微信约他:让荷尔蒙飞一飞!结果约到民警
保卫创新学校,是在保卫未来的多种可能丨记者手记
男子签字替他人担保借款 结果被要求“还款 ”