Meshlet 剔除示例
Meshlet 剔除示例
建议你先阅读 Meshlets 主题。
Meshlet 剔除示例主题介绍了一种称为 meshlet 剔除 的技术在放大着色器(Amplification Shader)中实现的伪代码。由于一个 meshlet 的图元在理想情况下具备空间和方向的相关性,因此我们可以按 meshlet 存储高效的剔除数据。这些数据可用于在放大着色器中对 meshlet 列表相对视图进行快速剔除,仅为存活下来的 meshlet 分派网格着色器实例。
该技术从一个放大着色器开始,每个线程处理一个 meshlet。这意味着我们必须在命令列表上分派 ceil(MeshletCount / GROUP_SIZE) 个线程组。
然后,每个放大着色器线程组负责处理 GROUP_SIZE 个 meshlet。每个线程对其 meshlet 相对视锥体进行剔除,确定其导出槽,然后将其索引写入载荷数据。它接着使用 DispatchMesh 为每个存活下来待渲染的 meshlet 分派一个网格着色器线程组。每个网格着色器线程组随后从载荷数据加载其 meshlet 并导出其几何数据。
完整示例可以在 XBOX 开发者下载页上找到。
最后修改于 2026年8月24日
