「DirectX Raytracing」の版間の差分
Administrator (トーク | 投稿記録) (→概要) |
Administrator (トーク | 投稿記録) (→概要) |
||
10行目: | 10行目: | ||
* [[Pipeline State Object]]にレイトレーシング向けバージョンが追加 | * [[Pipeline State Object]]にレイトレーシング向けバージョンが追加 | ||
− | [[シェーダー]]の書き方はVBやC#などで一般的な「[[イベント駆動型]] | + | == シェーダーの書き方 == |
+ | [[シェーダー]]の書き方はVBやC#などで一般的な「[[イベント駆動型]]」に近い記述方法となっている。「何かに反射したとき」などのあらかじめ用意されている各種イベントに対してシェーダーを設定しておき、「レイトレーシング開始しろ」という[[API]]を呼べば後は全自動でやってくれるという代物である。つまりレイトレーシングに精通していなくてもそこそこ使えてしまう。 | ||
== OpenGLやVulkanなどの動向 == | == OpenGLやVulkanなどの動向 == |
2022年2月14日 (月) 01:58時点における版
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」が登場するまではダンマリを決め込むものと思われる。
資料
githubにソースコードが公開されている。いわゆる「ソース読め」でありその他の資料は見当たらない。まじかよ。