メインメニューを開く

差分

DirectX Raytracing

1,649 バイト追加, 2023年10月26日 (木) 05:20
編集の要約なし
'''DirectX Raytracing(通称:DXR)とは、Raytracing'''(読み:だいれくとえっくす・れいとれーしんぐ、通称:DXR)とは、[[GeForce RTX]]などのDXR対応[[GPU]]でリアルタイムな[[レイトレーシング]]できるというものである。
== 概要 ==[[DirectX]]の新バージョンではなくDirectX 12の拡張としてリリースされた。一般配布は2018年10月10日にの新バージョンではなく「[[DirectX 12]]の拡張(マイナーアップデート)」としてリリースされた。一般配布は2018年10月10日に[[Windows 10]]のアップデートとして行われた。
DXRではDirectX 12に以下の3つの要素が追加された。
 
* 「acceleration structure」= シーンの中で使われているオブジェクトであることを[[GPU]]に明示するためのもの
* CommandListにレイを飛ばす「DispatchRays関数」が追加コマンドリスト用メソッドに[[レイ]]を飛ばす「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]]が配布されている。
* https://pc.watch.impress.co.jp/docs/news/1241762.html
 
=== Metal ===
[[Metal]]に関してはいまのところ不明である。
[[アップル]]は[[AMD]]の[[dGPU]]と[[Intel]]の[[iGPU]]しか採用しないので「[[Radeon RX Navi 2X]]」が登場するまではダンマリを決め込むものと思われる。
== 資料 ==
== 関連項目 ==
* [[DirectX 12]]
* [[レイトレーシング]]
* [[スクリーンスペースリフレクション‎]]
* 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/
 
[[category: DirectX]]