Unity 2018 のレンダリングパイプライン

高画質レンダーパイプライン ― ビジュアル品質に重点を置いたパイプライン
https://blogs.unity3d.com/jp/2018/03/16/the-high-definition-render-pipeline-focused-on-visual-quality/

Unity Labs
https://unity3d.com/jp/labs

Unity のレンダリング技術を解説している記事です。
非常に高いレンダリング品質を実現しています。着実に進化を続けてきて凄いですね。

Compute Shader のバッファの種類

NVIDIA DrectCompute Programming Guide
http://developer.download.nvidia.com/compute/DevZone/docs/html/DirectCompute/doc/DirectCompute_Programming_Guide.pdf

Compute Shader のメモリー周りを解説している記事です。
入門に最適です。

DirectX 10 まではシェーダーからリソースの読み込みしか出来ませんでしたが、DirectX 11 からはシェーダーからリソースへの書き込みにも対応しています。レンダーターゲット以外の任意のメモリ領域にも値を書き込むことができるようになっています。

DirectX11 で生成できるバッファの種類には下記のものがあります。RW とついている型はシェーダーからの読み書きが行えます。ついていない型は読み取り専用です。Append/Consume バッファはシェーダー上でスタック (FILO) のようにデータを処理できるバッファです。

  • RWBuffer
  • Texture1D/RWTexture1D
  • Texture1DArray/RWTexture1DArray
  • Texture2D/RWTexture2D
  • Texture2DArray/RWTexture2DArray
  • Texture3D/RWTexture3D,
  • StructuredBuffer/RWStructuredBuffer
  • ByteAddressBuffer/RWByteAddressBuffer
  • AppendStructuredBuffer/ConsumeStructuredBuffer

MSDN の RWTexture2DStructuredBuffer のページは参考になります。

AppendStructuredBuffer/ConsumeStructuredBuffer

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 にならないのかな?

AI x Houdini の活用

プロシージャルコンテンツ生成の可能性に沸くゲーム業界~Tokyo Houdini Meetup Vol.1レポート
https://cgworld.jp/feature/201801-houdini-meetup.html

Houdiniで機械学習 with TensorFlow
https://qiita.com/takavfx/items/f27cd76604e902199c9d

3D Face ReconstructionとHoudiniで写真から顔モデルを作ろう
https://qiita.com/jyouryuusui/items/18470a184a794999d085

どの記事も素晴らしい内容で、今後のワークフローの方向性を感じさせられる内容ですね。
もし Tokyo Houdini Meetup の2回目があったら参加したいです。

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.