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