DirectX Raytracing
DirectX Raytracing(読み:だいれくとえっくす・れいとれーしんぐ、通称:DXR)とは、GeForce RTXなどのDXR対応GPUでリアルタイムなレイトレーシングできるというものである。
目次
概要
DirectXの新バージョンではなく「DirectX 12の拡張(マイナーアップデート)」としてリリースされた。一般配布は2018年10月10日にWindows 10のアップデートとして行われた。
DXRではDirectX 12に以下の3つの要素が追加された。
- 「acceleration structure」= シーンの中で使われているオブジェクトであることをGPUに明示するためのもの
- コマンドリスト用メソッドにレイを飛ばす「DispatchRaysメソッド」が追加
- HLSLをレイトレーシング向けに拡張
- Pipeline State Objectにレイトレーシング向けバージョンが追加
シェーダーの書き方はVBやC#などで一般的な「イベント駆動型」に近い記述方法となっている。「何かに反射したとき」などのあらかじめ用意されている各種イベントに対してシェーダーを設定しておき、「レイトレーシング開始」というAPIを呼べば後は全自動でやってくれるという代物である。つまりレイトレーシングに精通していなくてもそこそこ使えてしまう。
OpenGLやVulkanなどの動向
OpenGL
OpenGLにDirectX Raytracing相当の機能を搭載するかは未定である。 たぶんVulkanと競合して足の引っ張り合いにならないよう、実装されないと思われる。
Vulkan
Vulkanの開発元であるLunarGはDirectX Raytracing相当の機能「Vulkan Ray Tracing」を実装すると発表した。2020年から暫定版を含んだSDKが配布されている。
Metal
Metalに関してはいまのところ不明である。 アップルはAMDのdGPUとIntelのiGPUしか採用しないので「Radeon RX Navi 2X」が登場するまではダンマリを決め込むものと思われる。