[UE学习笔记][基于源码] 运行时网格 PMC / DMC / RMC

[UE学习笔记][基于源码] 运行时网格 PMC / DMC / RMC

基于 UE 5.7 引擎源码

理清 UProceduralMeshComponent / UDynamicMeshComponent / URealtimeMeshComponent 三者的定位、数据结构、能力对比,回答"运行时构造 / 修改 mesh 该选谁"。


选型

  • PMC :低频构造、万级以下顶点的程序化 mesh、Debug 可视化、原型;不适合大顶点量或高频更新(API 强制整段重传 TArray<FVector> + 单顶点 152 B + 无 LOD / Nanite / GPUScene)
  • DMC :需要拓扑算法的几何编辑(CSG / Remesh / Sculpt / UV 重算等);拓扑不变时配合 FastNotifyPositionsUpdated / FastNotifyTriangleVerticesUpdated 也可做高频属性更新。不适合大量独立 actor 各持一份(每实例都背一套邻接 + Overlay,内存吃紧;无 LOD / Nanite / GPUScene)
  • RMC :高频生成 / 更新的大体量 mesh(体素地形 / Marching Cubes / 城市 Tile / 动态海洋等);不做几何拓扑编辑------RealtimeMeshAlgo 只提供渲染数据辅助算法(切线、polygon group 重排),需要 CSG / Remesh / Sculpt 先用 DMC 算几何再喂 RMC

横向对比

表中 + = 支持,- = 不支持,++ = 该组件的招牌强项。

维度 PMC DMC RMC
来源 引擎 引擎 第三方
支持版本 UE4+ UE5+ UE5+
数据结构 AoS 索引+邻接 SoA + Section
局部更新 - + ++
LOD - - +
Nanite - - +
GPUScene 友好 - - +
多线程构建 - + +
Async Collision Cooking + + +
几何算法 - ++ -
生产可用 - + +

细节

PMC

  • 数据结构FProcMeshVertex AoS 排布------每个顶点含双精度位置 + 法线 + 4 通道 UV + 颜色 + 切线

DMC

  • 数据结构FDynamicMesh3 = 索引网格(顶点 / 三角形数组)+ 完整邻接表(每顶点边一环 + 每边双侧三角形)+ 法线 / UV / Color 各自 Overlay;邻接结构使拓扑算法 O(degree) 而非 O(N)
  • 局部更新 :拓扑变化用 NotifyMeshUpdated(重建 RenderProxy);属性变化用 FastNotifyColorsUpdated / FastNotifyPositionsUpdated / FastNotifyUVsUpdated / FastNotifyTriangleVerticesUpdated(指定三角形子集),更新现有 RenderProxy buffer 而不重建
  • 几何算法GeometryProcessing 模块群(含 MeshModelingTools 等)提供 CSG(布尔)/ Remesh / Sculpt / UV Layout / 简化 / 切割等拓扑级算法,配 EditMesh(Lambda) 调用

RMC

  • 数据结构 :4 层 RealtimeMesh -> LOD -> SectionGroup -> Section。Stream 挂在 SectionGroup 上(SoA,每条对应一段 RHI 顶点缓冲),Section 只引用 SectionGroup 内 Stream 的下标范围 -> 同一份缓冲可被多 Section 切片复用
  • 局部更新 :以 SectionGroup 为单位 UpdateSectionGroup(Key, NewStreamSet) 整组 streams 替换;多 SectionGroup 共存使 chunked 更新天然成立(地形 chunk / Tile = 1 个 SectionGroup,互不影响)
  • Nanite :通过 IRealtimeMeshNaniteSceneProxyManager(Modular Feature,名 RealtimeMeshNanite)接入。开源版只有接口和 FRealtimeMeshNaniteResources(封装 Nanite::FResources),实际实现走 Premium 模块
相关推荐
@codercjw9 小时前
工程图制图经验
学习
星幻元宇VR10 小时前
VR文旅大空间|沉浸式体验重塑文旅新场景
科技·学习·安全·vr·虚拟现实
Cat_Rocky10 小时前
K8S-Helm简单学习分享
学习·容器·kubernetes
NNYSJYKJ10 小时前
告别刷题无效与偏科:脑能模型解锁 K12 学习底层能力构建
学习
凌云若寒10 小时前
BarTender许可 | 关于PDF打印数量说明
学习·pdf·产品经理·制造·软件需求
一只机电自动化菜鸟11 小时前
一建机电备考笔记(36) 焊接技术—焊接方法与工艺(含考频+题型)
笔记·学习·职场和发展·生活·学习方法
乖硅不乖11 小时前
Dummy七日学习(七)
学习
知识分享小能手11 小时前
R语言入门学习教程,从入门到精通,R语言获取数据 (8)
开发语言·学习·r语言
sensen_kiss11 小时前
CAN302 Technologies for E-Commerce 电子商务技术 Pt.8 网络安全(Secure the Web)
网络·学习·安全·web安全
通信小呆呆11 小时前
注意力机制用于信号同步:从匹配滤波到可学习对齐
人工智能·学习·机器学习·信息与通信