Exemplo de culling de meshlets
Exemplo de culling de meshlets
Recomendamos que você leia primeiro o tópico Meshlets.
O tópico Exemplo de culling de meshlets apresenta o pseudocódigo de uma implementação em Amplification Shader de uma técnica chamada culling de meshlets. Como os primitivos de um meshlet idealmente seguem uma coerência espacial e de orientação, podemos armazenar dados de culling eficientes por meshlet. Isso pode ser usado para fazer rapidamente o culling de uma lista de meshlets em relação a uma visão em um Amplification Shader e despachar instâncias de Mesh Shader somente para os meshlets restantes.
A técnica começa com um Amplification Shader no qual cada thread processa um único meshlet. Isso significa que devemos despachar ceil(MeshletCount / GROUP_SIZE) grupos de threads na lista de comandos.
Cada grupo de threads do Amplification Shader é então responsável por processar GROUP_SIZE meshlets. Cada thread faz o culling do seu meshlet em relação ao frustum de visão, determina seu slot de exportação e, em seguida, grava seu índice nos dados de payload. Depois, usa DispatchMesh para despachar um grupo de threads de Mesh Shader para cada meshlet restante a ser renderizado. Cada grupo de threads de Mesh Shader então carrega seu meshlet a partir dos dados de payload e exporta sua geometria.
O exemplo completo pode ser encontrado na página de downloads para desenvolvedores do XBOX.
Última modificação em 6 de outubro de 2026
