作为我持续学习新工具方法的努力的一部分,我构建了一个我在每个生产环境中都需要的,但在Unreal Engine中并非native的东西:一个2D密度热图的摄像机网格剖析器。

痛点:知道一个场景的哪个部分是重度的(实例、三角形、绘制调用)而不需要手动飞行猜测,之后又需要手动在每个问题区域进行剖析。因此,我构建了一个C++插件:
➡️ 在场景中布置一个摄像机网格 — 使用载入的几何体、NavMesh体积或整个世界分区范围的边界 — 使用抖动放置和射线(或NavMesh投影)地面验证
➡️ 自动将每个摄像机对准场景的局部密度集中(每个资产集通过重量和距离“拉动”视图,因此摄像机面向热区,而不是空白区域)
➡️ 在PIE或真实的独立/控制台构建中运行自动化剖析 — Unreal Insights跟踪+截图+每帧摄像机时间
➡️ 输出一个自包含的、可点击的HTML热图,跨四个指标 — 实例/三角形/绘制调用/动态光源重叠(重绘) — 伴有一个localhost桥梁回编辑器:单击一个单元格以跳转或选择它内部的精确内容(带有每个网格LOD/纳尼特分解),或单击一个摄像机以查看截图、帧率和跟踪
➡️ 将每次生成记录在内,右在热图内切换过去的运行,并将一个单一文件诊断记录写入,使远程调试成为可能而不需要将整个场景发送

两个模块:一个Runtime子系统用于编辑器自由、控制台代表性的剖析,以及一个编辑器模块用于网格生成和热图工具。
这是一个小系列剖析工具的第一部分,我正在构建以填补过去项目中的空白。

如果你想尝试的链接如下:
https://github.com/GabrielRheault/MeshDensityHeatMap