とうとう DirectX にも Mesh Shader が来るのかもしれません。
Microsoft のブログによると、 Windows10 の次のバージョン 20H1 にて次のような拡張が入りそうな感じです。
- DirectX RayTracing Tier 1.1
- DirectX Mesh Shader
- DirectX Sampler Feedback
- Texture Streaming
- Texture-Space Shading
レイトレーシング Tier 1.1
レイトレーシングの機能は 1809 以降で使えるようになっていますが、 NVIDIA の一部のハードウェアのみです。Tier 1.1 の機能が使える環境も引き続き NVIDIA の環境となるのか、対応すると言っている AMD で使えるようになってくるのか楽しみです。
Mesh Shader
Mesh Shader の機能は NVIDIA が OpenGL/Vulkan の拡張機能として出していました。ちょっと前の AMD RADEON Vega で、 Primitive Shader と呼ばれていた新機能がありましたが、位置付けとしては両者ともに同じと言ったところでした。が、Vega の Primitive Shader を使うという点については拡張やAPIなどが見当たらず、触ってみることは不可能だったと思います。
これがようやく DirectX が Mesh Shader に対応することになり、両者で使える日がそう遠くないうちに実現するのではないかと感じています。複雑になってきたパイプラインがパワフルだけどシンプルになりそうで、楽しみに思います。
DirectX Sampler Feedback
サンプラーフィードバックというのは、サンプリング中にテクスチャのどの領域にアクセスしたかがわかるハードウェア機能のようです。この機能は、テクスチャストリーミングやテクスチャスペースシェーディングなどで役立つものとされているようです。
間違っているかもしれませんが、自分の印象では必要な部分だけをリソースロードしてテクスチャの一部分にはめ込む感じなのかなと思っています。それがどの部分が必要になったのかが分かるようになった!ということかなと感じました。今までもスパーステクスチャなどで実現できる部分じゃ無いかとは感じますが、そちらではどの部分が必要になったのかをCPU側でチェックすることが必要なのかも?
この機能は実際に使いながら動きを見てみるのが良さそうですね。サンプルコードが公開されるのに期待します。