メッシュレット カリングの例
メッシュレット カリングの例
まず メッシュレット のトピックを読むことをお勧めします。
このメッシュレット カリングの例のトピックでは、メッシュレット カリング と呼ばれる手法を Amplification Shader で実装した疑似コードを示します。メッシュレットのプリミティブは、理想的には空間的および方向的な一貫性を持っているため、メッシュレットごとに効率的なカリング データを保存できます。これを利用して、Amplification Shader 内でメッシュレット リストをビューに対して素早くカリングし、生き残ったメッシュレットに対してのみメッシュ シェーダー インスタンスをディスパッチできます。
この手法は、各スレッドが 1 つのメッシュレットを処理する Amplification Shader から始まります。つまり、コマンド リストに対して ceil(MeshletCount / GROUP_SIZE) 個のスレッドグループをディスパッチする必要があります。
その後、各 Amplification Shader スレッドグループは GROUP_SIZE 個のメッシュレットを処理する責任を持ちます。各スレッドは自身のメッシュレットをビュー フラスタムに対してカリングし、エクスポート スロットを決定し、そのインデックスをペイロード データに書き込みます。次に DispatchMesh を使用して、レンダリングのために生き残った各メッシュレットに対して 1 つのメッシュ シェーダー スレッドグループをディスパッチします。次に、各メッシュ シェーダー スレッドグループはペイロード データからメッシュレットを読み込み、そのジオメトリをエクスポートします。
完全なサンプルは、XBOX Developer Downloads ページで入手できます。
最終更新日 2026年8月24日
