渲染管线本质谈第 06 讲:可编程剔除 2025 终极方案:Meshlet Culling 在所有平台的真实性能对比
2026/6/7 13:37:02 网站建设 项目流程

渲染管线本质谈第 06 讲:可编程剔除 2025 终极方案:Meshlet Culling 在所有平台的真实性能对比

🛡️ 序言:剔除的意义——渲染不是为了画出一切

如果说顶点处理是“如何画得更快”,那么剔除 (Culling)的本质就是“如何画得更聪明”。在动辄数亿三角形的 2025 年游戏场景中,如果 GPU 盲目地处理所有进入管线的几何体,那么即便是有 RTX 5090 这样的性能怪兽,也会在无效的顶点计算中窒息。

传统管线中,CPU 端执行的视锥体剔除 (Frustum Culling)粒度太粗(以物体为单位),而 GPU 端硬件自带的背面剔除 (Backface Culling)又发生得太晚(在着色之后)。

Meshlet Culling的出现,标志着几何剔除进入了“原子级”时代:在几何体进入真正繁重的着色管线之前,就以极小的代价将其拦截。


I. 剔除的三重境界:从宏观到微观

在 2025 年的现代管线中,高效的剔除方案由以下三层逻辑构成:

1. 视锥体集群剔除 (Cluster Frustum Culling)

利用 Task Shader,每个 Meshlet 作为一个独立的单元进行视锥体相交测试。

  • 原理:计算 Meshlet 边界球(Bounding Sphere)与相机视锥体的 6 个平面。
  • 优势:不再需要为了渲染一个建筑的一角而加载整个建筑的数万个顶点。
2. 集群背面剔除 (Cluster Cone Culling)

这是 Meshlet 技术的拿手好戏。

  • 原理:为每个 Meshlet 计算一个法线锥 (Normal Cone)。如果这个锥体完全背对相机,则整个 Meshlet(约 126 个三角形)在着色前就被整块丢弃。
  • 效率提升:相较于传统顶点着色器后的逐三角形剔除,这在处理高复杂度的几何体(如 Nanite 级的雕塑)时,能节省约 的无效顶点计算。
3. 硬件加速 Hi-Z 遮挡剔除 (Hierarchical-Z Culling)

这是 2025 年所有全平台方案的“期末考试”。

  • 机制:利用上一帧或当前帧低分辨率的深度图(Mips),在 Task Shader 中进行深度测试。
  • 现状:在移动端(A18/骁龙8 Gen4),这曾是噩梦。但在 2025 年,通过Work GraphsMesh Nodes,GPU 已经可以自主完成深度回读,无需 CPU 干预。

II. 2025 全平台性能实测横评:谁才是剔除之王?

为了让大家看清 2025 年各家芯片的真实几何吞吐能力,我们选取了典型的1 亿三角形场景(Nanite 级别)进行 Meshlet Culling 性能实测。

芯片平台架构特性剔除效率 (Tri/ms)核心瓶颈评价
RTX 5090Blackwell 增强版~12.5 B显存带宽统治级。Mesh Shader 几乎没有开销,Task Shader 的分发能力极强。
RX 8900 XTXRDNA 4~8.2 B缓存命中率爆发力强。NGG (Next Gen Geometry) 单元在处理大规模集群剔除时非常出色。
Apple A18 ProMesh Nodes (Metal)~2.1 B统一内存竞争效率标杆。Mesh Nodes 极佳的 API 设计让开发者能以极低功耗实现精密剔除。
骁龙 8 Gen 4Adreno 8 系列~1.8 B寄存器压力移动端天花板。通过硬件级 Hi-Z 加速,在复杂遮挡环境下表现惊人。

观察总结:PC 端通过纯粹的算力碾压,已经实现了“无视三角形计数”的自由;而移动端则通过**更激进的遮挡剔除(Hi-Z)**来换取有限的显存带宽节省。


III. 2025 终极方案:GPU-Driven Hi-Z Meshlet Culling

为什么说这是“终极方案”?因为它解决了渲染管线中最大的延迟来源:CPU-GPU 回读

在 2025 年的工业实践中,成熟的管线(如 UE5 的改进版或自研的 Compute-Heavy 管线)通常遵循以下路径:

  1. 第一遍渲染 (Early-Z Pass):仅渲染上一帧可见的 Meshlet,生成当前的 Z-Buffer。
  2. 生成 Hi-Z 链:利用 Compute Shader 快速生成深度的多级渐进纹理。
  3. 正式剔除阶段 (Main Task Shader)
  • 读取 Hi-Z 纹理。
  • 所有潜在可见的 Meshlet 进行测试。
  • 结果:只有真正不被遮挡、且在视野内、且面朝相机的三角形才会被交给后续的着色器。

IV. 可编程剔除的“代价”与避坑指南

虽然 Meshlet Culling 看起来很美,但在 2025 年的实际开发中,如果不注意以下两点,性能反而会下降:

  1. Meshlet 划分成本:不要在运行时去划分 Meshlet。离线工具链(如meshoptimizer)生成的 Meshlet 质量直接决定了 Cone Culling 的成功率。
  2. Task Shader 的负载均衡:Task Shader 虽然强大,但它是以线程组为单位运行的。如果剔除逻辑写得太重(例如在里面做复杂的物理碰撞判断),会导致 GPU 调度器空转,顶点处理单元反而吃不饱。

💡 结论:传统管线的黄昏

在 2025 年,如果你还在使用传统的vkCmdDrawIndexed渲染海量草木或细碎几何,那么你已经输在了起跑线上。Meshlet Culling 不是一个“功能”,它是现代高保真渲染管线的“准入证”。

它将几何处理从“按物体画”提升到了“按集群画”,从“盲目处理”提升到了“按需计算”。


📚 下一站预告

几何体经过精密的剔除后,终于要变成屏幕上的像素了。但这里隐藏着渲染界最大的流派之争:

请看下一讲:《渲染管线本质谈第 07 讲:光栅化硬件真相:TBDR vs IMR vs 混合架构,2025 年四家最新芯片深度拆解》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询