Realtime Raytracing 資料

■ DirectX Raytracing

Getting Started with Raytracing
http://forums.directxtech.com/index.php?topic=5860.0

GDC DirectX Raytracing
https://msdnshared.blob.core.windows.net/media/2018/03/GDC_DXR_deck.pdf

Announcing Microsoft DirectX Raytracing!
https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/

■ Metal

Metal for Accelerating Ray Tracing
https://developer.apple.com/documentation/metalperformanceshaders/metal_for_accelerating_ray_tracing

Metal for Ray Tracing Acceleration
https://developer.apple.com/videos/play/wwdc2018/606/
https://devstreaming-cdn.apple.com/videos/wwdc/2018/606id8hzoex3kf/606/606_metal_for_ray_tracing_acceleration.pdf?dl=1

Metal の Raytracing は MPS として提供されています
https://developer.apple.com/documentation/metalperformanceshaders

使った事は無いので詳しくないですが、Metal Performance Shader は Metal の上位レイヤーとして提供されているライブラリー (framework) の事で、MPS を使うことで、各 iOS や Mac に最適化された機械学習やレイトレーシングの機能を利用出来るようになるみたいです。

GPU を使った機能なので shader という名前が付いています。恒例的に仕方ないのは分かるのですが、ニューラルネットワークの機能も提供しているフレームワークの名称が shader  って、何だかややこしいですね。

■ Vulkan

NVIDIA RTX: Enabling Ray Tracing in Vulkan
http://on-demand-gtc.gputechconf.com/gtcnew/on-demand-gtc.php?searchByKeyword=s8521&searchItems=&sessionTopic=&sessionEvent=&sessionYear=2018&sessionFormat=&submit=&select=
http://on-demand.gputechconf.com/gtc/2018/presentation/s8521-advanced-graphics-extensions-for-vulkan.pdf

Real-Time Rendering

Real-Time Rendering はゲームグラフィックスを学ぶ中で、目に通した方が良いサイトです。

Graphics Books Page
http://www.realtimerendering.com/books.html

Portal
http://www.realtimerendering.com/portal.html

Resources
http://www.realtimerendering.com/index.html

Real-time Rendering 4th edition

2018年8月2日 にリアルタイムレンダリング4版が出版されます。
http://www.realtimerendering.com/blog/real-time-rendering-4th-edition-available-in-august-2018/

Third edition の発売は2008年のようだったので、10年ぶりの改訂版ですね。
自分は second edition の日本語版しか持っていないので、新しいのが出たら買いたいです。

HDR と WCG の参考記事

HDRの解説と高画質技術の今後
https://www.ituaj.jp/wp-content/uploads/2017/05/2017_05-04-Spot-HDR.pdf

シリコンスタジオによる HDR出力対応の理論と実践
https://www.siliconstudio.co.jp/rd/presentations/files/CEDEC2016/cedec2016_sskk_hdr_kawase.pdf

ROBOTによる8K×HDR×フルCG映像。「Fireworks Tree 光の世界樹」によせて
https://cgworld.jp/feature/201610-cgw218HS-ft.html

What’s HDR Sony
https://www.sony.jp/products/Professional/c_c/hdr/index01.html

シリコンスタジオ川瀬氏が説くゲームグラフィックスをHDR映像としてHDRテレビに出力する方法
http://jp.gamesindustry.biz/article/1605/16052602/

「グランツーリスモSPORT」が実現した「HDR&広色域のネイティブ対応」とは何か?
http://www.4gamer.net/games/322/G032254/20170831043/

西川善司の3DGE:「グランツーリスモSPORT」のグラフィックスは10年後でも通用する!?
http://www.4gamer.net/games/322/G032254/20170616079/

“超リアル”な映像『グランツーリスモSPORT』を正確に描写するブラビアの表現力
https://www.sony.jp/feature/owner/br/171106/

PS4HDRで楽しむ方法!機器選びからHDR画質で遊ぶまでの手順
https://ekisyoutv.net/archives/4506

4Kテレビを賢く買うならカタログスペックの読み方を理解しよう!
http://trendy.nikkeibp.co.jp/article/column/20150629/1065402/?P=5

よくわかる、HDR徹底解説! HDRとは
http://www.eizo.co.jp/eizolibrary/color_management/hdr/index.html

UHDTV HDR,HLG & WCGを理解する by LightIllusion
http://www.edipit.co.jp/products/detail.php?id=128

ポスプロ技術部 発 ちょっとだけ技術なコラム 「HDRって何?その③」
http://www.nitro.co.jp/pospro/report/2016/11/02/hdr3.html

HDR時代」到来 テレビからiPhoneまで、HDRの現状を分かりやすく解説
http://www.eizo.co.jp/eizolibrary/other/itmedia_hdr/

GeForce Development
https://developer.nvidia.com/geforce-development

High Dynamic Range Display Development
https://developer.nvidia.com/high-dynamic-range-display-development

こんな画像をリアルタイムレンダリングしてみたい。

ゲーム業界でも HDR と WCG は避けては通れないキーワードになっていますね。
私はまだこの2つの関連性が良くわかっていません。HDR になれば自然と WCG にならないのかな?

DirectX Raytracing (DXR) の実行環境

DirectX Raytracing に興味があったので調べてみました。

DirectX Raytracing Sample

Microsoft/DirectX-Graphics-Samples
https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12Raytracing

ページ下部の Requirements に書かれていますが、このサンプルを実行できる最低動作環境は下記になります。

  • Visual Studio 2017
  • Windows 10 1709 (Fall Creators Update)
  • NVIDIA Maxwell 2nd gen  / AMD GCN 2.0 (※未確認)

実行には NVIDIA Maxwell 第2世代より新しい GPU が必要になります。2016年以前の GPU だと対応していない可能性があるので注意が必要です。未対応の GPU だとサンプルのビルドは通っても実行時にエラーになります。

サンプルの実行環境

少々ややこしいのですが DirectX Raytracing を動作させる方法は2つあります。

  1. ハードウェアの支援を得てレイトレーシングする方法 (DXR API を使用)
  2. Compute Shader でレイトレシーングする方法 (Fallback Layer API を使用)

Microsoft のサンプルでは、この2種類の動作モードが実行環境によって切り替わります。レイトレーシングを 1 で動作させるためには NVIDIA Volta など新しいアーキテクチャの GPU が必要になるため、殆どの場合は 2 のエミュレート環境 (Fallback Layer) で実行されます。

ハードウェア支援のレイトレーシング

(1) の DXR API を使用するには最新の GPU ハードウェアのサポートが必要になります (Ray とポリゴンの衝突判定の支援?) 。2018年5月現在、(1) の DXR API を使用したプログラムを実行させるには、NVIDIA Tesla V 100 と NVIDIA Titan V の2製品しかまだ無かったはずです。ちなみに AMD は不明です。

DirectX Raytracing requires:

  • Windows 10 with the April 2018 update with DXR SDK overlay binaries.
  • Dx12 gpu with a compatible DirectX Raytracing driver.
    • Nvidia: Volta or higher with 397.31+ driver.
    • Other vendors – please consult the vendor you’re working with for HW and driver availability.

シミュレートしたレイトレーシング

殆どの環境で動作している DXR はこちらのシミュレートになります。 (2) の方法は Compute Shader を使用して DXR の挙動をシミュレートしているだけなので実行効率は悪く動作も遅いです。しかし既存の GPU でも DirectX を利用したレイトレシーングが可能です。

Fallback Layer requires:

  • Windows 10 with the Fall Creators Update or higher.
  • Dx12 GPU with a driver that has retail DXIL support.