「DirectX Raytracing」の版間の差分
Administrator (トーク | 投稿記録) |
|||
(2人の利用者による、間の8版が非表示) | |||
1行目: | 1行目: | ||
− | DirectX | + | '''DirectX Raytracing'''(読み:だいれくとえっくす・れいとれーしんぐ、通称:DXR)とは、[[GeForce RTX]]などのDXR対応[[GPU]]でリアルタイムな[[レイトレーシング]]できるというものである。 |
− | [[DirectX]] | + | == 概要 == |
+ | [[DirectX]]の新バージョンではなく「[[DirectX 12]]の拡張(マイナーアップデート)」としてリリースされた。一般配布は2018年10月10日に[[Windows 10]]のアップデートとして行われた。 | ||
DXRではDirectX 12に以下の3つの要素が追加された。 | DXRではDirectX 12に以下の3つの要素が追加された。 | ||
− | |||
* 「acceleration structure」= シーンの中で使われているオブジェクトであることを[[GPU]]に明示するためのもの | * 「acceleration structure」= シーンの中で使われているオブジェクトであることを[[GPU]]に明示するためのもの | ||
− | * | + | * コマンドリスト用メソッドに[[レイ]]を飛ばす「DispatchRaysメソッド」が追加 |
* [[HLSL]]をレイトレーシング向けに拡張 | * [[HLSL]]をレイトレーシング向けに拡張 | ||
+ | * [[Pipeline State Object]]にレイトレーシング向けバージョンが追加 | ||
+ | |||
+ | == シェーダーの書き方 == | ||
+ | [[シェーダー]]の書き方はVBやC#などで一般的な「[[イベント駆動型]]」に近い記述方法となっている。「何かに反射したとき」などのあらかじめ用意されている各種イベントに対してそれぞれシェーダーを設定しておき、「レイトレーシング開始しろ」という[[API]]を呼べばあとは全自動でやってくれるという代物である。つまりレイトレーシングに精通していなくてもそこそこ使えてしまう。 | ||
+ | |||
+ | == OpenGLやVulkanなどの動向 == | ||
+ | === OpenGL === | ||
+ | [[OpenGL]]にDirectX Raytracing相当の機能を搭載するかは未定である。 | ||
+ | たぶんVulkanと競合して足の引っ張り合いにならないよう、実装されないと思われる。 | ||
+ | |||
+ | === Vulkan === | ||
+ | [[Vulkan]]の開発元である[[LunarG]]はDirectX Raytracing相当の機能「Vulkan Ray Tracing」を実装すると発表した。2020年から暫定版を含んだ[[SDK]]が配布されている。 | ||
+ | * https://pc.watch.impress.co.jp/docs/news/1241762.html | ||
+ | |||
+ | === Metal === | ||
+ | [[Metal]]に関してはいまのところ不明である。 | ||
+ | [[アップル]]は[[AMD]]の[[dGPU]]と[[Intel]]の[[iGPU]]しか採用しないので「[[Radeon RX Navi 2X]]」が登場するまではダンマリを決め込むものと思われる。 | ||
== 資料 == | == 資料 == | ||
14行目: | 31行目: | ||
== 関連項目 == | == 関連項目 == | ||
+ | * [[DirectX 12]] | ||
* [[レイトレーシング]] | * [[レイトレーシング]] | ||
* [[スクリーンスペースリフレクション]] | * [[スクリーンスペースリフレクション]] | ||
20行目: | 38行目: | ||
* Microsoftの開発者のブログ https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/ | * Microsoftの開発者のブログ https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/ | ||
* NVIDIAの開発者のブログ https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/ | * NVIDIAの開発者のブログ https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/ | ||
+ | |||
+ | [[category: DirectX]] |
2023年10月26日 (木) 05:20時点における最新版
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にソースコードが公開されている。いわゆる「ソース読め」でありその他の資料は見当たらない。まじかよ。