二、为何启用新的Mesh shader?
1、传统渲染管线存在的的问题:
—冗长的可编程+固定功能混合管线,可能造成性能问题
—顶点重用依赖于硬件内置的顶点缓存,无法并行化处理Index buffer的输入和展开
—大量顶点在后阶段被剪裁和剔除,会浪费GPU计算资源
2、Mesh shader 的优势:
—更高的可扩展性:通过减少原始处理中的固定功能影响,通过着色器单元实现更高的可扩展性。
—减少GPU带宽需求:因为顶点的重复数据删除(顶点重用)可以预先完成,并在许多帧上重复使用。
—灵活性高:利用可灵活编程的特性,完全自行处理: 输入、剪裁、剔除、曲面细分、顶点间数据共享、定义网格拓扑和创建图形工作。
3、Mesh shader 的劣势:
—需要原先的游戏或软件大量修改数据格式与代码
—需要GPU硬件层面支持

此外Mesh Shader可以很简便地实现LOD功能(Level Of Detail 层次细节技术)。
大家记得之前虚幻5引擎发布时带来的Nanite 功能么?
可以简单理解为让游戏里的对于远处物体自动使用粗糙的版本,近的物体自动使用高精度的版本,从而减少性能浪费,提升游戏表现,还大大简化开发者手动编辑模型的步骤。

如果说虚幻5引擎的Nanite是从软件上实现自动LOD,那么可以说Mesh Shader能从硬件上实现自动LOD,而且效率会更高,更节省带宽和显存。
当然今后不排除nanite经过版本迭代会加入对mesh shader的支持。