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 Amplification Shader, d’une technique appelée élimination des meshlets (meshlet culling). Étant donné que les primitives d’un meshlet présentent idéalement une cohérence spatiale et d’orientation, nous pouvons stocker des données d’élimination efficaces par meshlet. Celles-ci permettent d’éliminer rapidement une liste de meshlets par rapport à une vue dans un Amplification Shader et de ne distribuer des instances de Mesh Shader que pour les meshlets restants.
La technique commence par un Amplification Shader dans lequel chaque thread traite un seul meshlet. Cela signifie que nous devons distribuer ceil(MeshletCount / GROUP_SIZE) groupes de threads sur la liste de commandes.
Chaque groupe de threads de l’Amplification Shader est alors chargé de traiter GROUP_SIZE meshlets. Chaque thread élimine son meshlet par rapport au frustum 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 distribuer un groupe de threads de Mesh Shader pour chaque meshlet restant à rendre. Chaque groupe de threads de Mesh Shader charge alors son meshlet à partir des données de charge utile et exporte sa géométrie.
L’exemple complet est disponible sur la page des téléchargements pour les développeurs XBOX.
Dernière modification le 6 octobre 2026
Sujets connexes
Mesh shaders et meshlets sur XBOX Series X|SMeshletsPourquoi les Mesh Shaders ?Annexe sur la présence enrichieStatistiques basées sur les événements et statistiques gérées par le titre