Exemple d'élimination des meshlets
Exemple d’élimination des meshlets
Nous vous recommandons de lire d’abord la rubrique Meshlets.
La rubrique Exemple d’élimination des meshlets présente le pseudocode d’une implémentation, dans un nuanceur d’amplification, d’une technique appelée élimination des meshlets (meshlet culling). Puisque les primitives d’un meshlet respectent idéalement une cohérence spatiale et d’orientation, nous pouvons stocker des données d’élimination efficaces pour chaque meshlet. Celles-ci peuvent servir à éliminer rapidement une liste de meshlets par rapport à une vue dans un nuanceur d’amplification, et à ne répartir des instances de nuanceurs de maillage que pour les meshlets restants.
La technique commence par un nuanceur d’amplification dans lequel chaque thread traite un seul meshlet. Cela signifie que nous devons répartir ceil(MeshletCount / GROUP_SIZE) groupes de threads dans la liste de commandes.
Chaque groupe de threads du nuanceur d’amplification est ensuite responsable du traitement de GROUP_SIZE meshlets. Chaque thread élimine son meshlet par rapport au tronc de la vue, détermine son emplacement d’exportation, puis écrit son index dans les données de charge utile. Il utilise ensuite DispatchMesh pour répartir un groupe de threads de nuanceur de maillage pour chaque meshlet restant à afficher. Chaque groupe de threads de nuanceur de maillage charge ensuite son meshlet à partir des données de charge utile et exporte sa géométrie.
L’exemple complet se trouve sur la page XBOX Developer Downloads.
Dernière modification le 6 octobre 2026
