Direct3D12のサンプルにCreators Updateの新機能のサンプルが追加

Direct3D12のサンプルにCreators Updateの新機能のサンプルが追加されています.

https://github.com/Microsoft/DirectX-Graphics-Samples

今回追加されているのは,

  • D3D12 Depth Bounds Test
  • Shader Model 6 Wave Intrinsics

の2つです.

Depth Bounds Testに関しては,以前の世代のAPIではGPUで使用できた機能ではありますが,Direct3D12で使用可能になった機能です.

Shader Model 6 Wave IntrinsicsはShader Model 6.0の新機能Wave Intrinsicsの使い方のサンプルです.Wave IntrinsicsはCompute ShaderやPixel Shaderでスレッドグループ共有メモリなどを使用せずにほかのシェーダスレッドと値の交換などができる機能です(Pixel Shaderではもともと使用できませんでしたが).

https://msdn.microsoft.com/en-us/library/windows/desktop/mt733232(v=vs.85).aspx

Wave IntrinsicsはもともとはGPUベンダーの拡張やCUDAなどで使用できていましたが,HLSL 6.0より標準機能になります.


Windows 10 Creators Updateで追加されたディスプレイ輝度,色空間の取得プログラム

CEDECの時にWindows 10 Creators Updateでディスプレイの輝度や色空間などの情報がとれるようになったという話題をしましが,起動するとその情報をコマンドラインに表示するだけのサンプルを公開します.

https://github.com/shaderjp/DisplaySpecCheck

※ビルド済み実行ファイルも添付しているので試すだけならexeあればOKです..

パネルディスカッションでは,HDR10対応(BT.2020)環境の話題がメインでしたが,このプログラム自体はSDRのモニタでも使用可能です.このスクリーンショットの例で使用したディスプレイはDellのSDRの4KモニタP2715Q です。

今回のサンプルはDXGI_OUTPUT_DESC1構造体より取得した情報を表示しています.

DXGI_OUTPUT_DESC1
https://msdn.microsoft.com/en-us/library/windows/desktop/mt825228(v=vs.85).aspx

HDR10かどうかを判断する場合,DXGI_OUTPUT_DESC1のメンバのColorSpaceをチェックします.これが709から2020になっているとHDR10の出力ができます.

輝度値は,MaxLuminance、MinLuminance、MaxFullFrameLuminanceあたりですが,単位はnitsです.SDRの際の表示は手元のいくつかのディスプレイで試しましたが最小0.5, 最大270を出すものが多くあてになるかは不明です.

このサンプルでは,DXGIやスワップチェーンの初期化をやっていますが,自分ですでに生成済み環境であればGetDisplayInformation関数だけ持ってきてIDXGISwapChain4を入れればOKです.


Amazon LumberyardのソースコードがGitHubで公開

AmazonのゲームエンジンLumberyardのソースコードがGitHubで公開になったようです.

Now Available – Lumberyard on GitHub
https://aws.amazon.com/jp/blogs/gamedev/now-available-lumberyard-on-github/

GitHubリポジトリ
https://github.com/aws/Lumberyard

※追記
日本語の記事が公開されました.

LumberyardがGitHubで公開されました!
https://aws.amazon.com/jp/blogs/news/now-available-lumberyard-on-github/


SIGGRAPH 2017 Open Problems in Real-Time Renderingのコース資料

Open Problems in Real-Time Renderingのコース資料が徐々に公開されています.

Open Problems in Real-Time Rendering
http://openproblems.realtimerendering.com/s2017/index.html

“Real-Time Rendering”ということで,ゲームやゲームエンジンの開発にかかわるような人が抱える問題や課題,将来予測などの4つのセッションがあります.

特に今回はPBR, GI, Compute, Deep Learningの活用というテーマに分かれています.

  • Physically-Based Materials: Where Are We? by Sébastien Lagarde (Unity Technologies)
  • A Certain Slant of Light: Past, Present and Future Challenges of Global Illumination in Games by Colin Barré-Brisebois (Electronic Arts SEED)
  • Future Directions for Compute-for-Graphics by Andrew Lauritzen (Electronic Arts SEED)
  • Deep Learning: The Future of Real-Time Rendering? by Marco Salvi (NVIDIA)

SIGGRAPH 2017コース Physically Based Shading in Theory and Practiceの資料が公開開始

SIGGRAPH 2017コース Physically Based Shading in Theory and Practiceの資料が公開開始になっています(この記事執筆時点ではすべてが公開されているわけではありません).

SIGGRAPH 2017 Course: Physically Based Shading in Theory and Practice
http://blog.selfshadow.com/publications/s2017-shading-course/

今年のセッションは以下の6つのセッションですね.

  • Real-Time Line- and Disk-Light Shading (Eric Heitz and Stephen Hill)
  • Physically Based Shading at DreamWorks Animation (Feng Xie and Jon Lanz)
  • Volumetric Skin and Fabric Shading at Framestore (Nathan Walster)
  • Practical Multilayered Materials in Call of Duty: Infinite Warfare (Michał Drobot)
  • Pixar’s Foundation for Materials: PxrSurface and PxrMarschnerHair (Christophe Hery and Junyi Ling)
  • Revisiting Physically Based Shading at Imageworks (Christopher Kulla and Alejandro Conty)

OpenGL 4.6が公開に

SIPPRAPH 2017の中でOpenGL 4.6の仕様が公開になったようです.

Khronos Releases OpenGL 4.6 with SPIR-V Support
https://www.khronos.org/news/press/khronos-releases-opengl-4.6-with-spir-v-support

OpenGL 4.6ではSPIR-Vのサポートが必須になったようです.

拡張も追加されていますが,ドローコール削減のために役立つGL_ARB_indirect_parametersやSubgroup処理などが入るようですね.

NVIDIAのセッションで紹介しているものがありました.


Radeon GPU Profiler 1.0リリース

AMDがRadeon GPU Profiler 1.0を公開しました.

Radeon GPU Profiler 1.0
http://gpuopen.com/radeon-gpu-profiler-1-0/

Radeon GPU Profiler(ツールのページ)
http://gpuopen.com/gaming-product/radeon-gpu-profiler-rgp/

こちらのツールは,Radeon向けのGPUプロファイラーでDirect3D12とVulkanに対応しています.

キューやコマンドの実行状況やWavefrontの占有率、コンテキストロールのストールなどを分析できます.

紹介動画なども公開されています.


VSCodeでglTFのプレビューができるglTF Extension for Visual Studio Code

VSCodeでglTFのプレビューができるglTF Extension for Visual Studio Codeが公開されています.

glTF Extension for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=cesium.gltf-vscode

VSCode上でglTFのJSONを編集しつつBabylonJS,Cesium,ThreeJSの3つのWebGLベースのエンジンで3Dモデルをプレビューすることができます.プレビュー以外にもデータの変換やチェック向きの機能もあるので便利そうですね.


HLSL to ISPC : HLSLのコードをISPCで実行できるようにするライブラリ

HLSL to ISPCというHLSLのコードをISPCで実行できるようにするライブラリが公開されています.

HLSL to ISPC
https://colinbarrebrisebois.com/2017/06/27/hlsl-to-ispc/

GitHubリポジトリ
https://github.com/zigguratvertigo/hlsl-to-ispc

テクスチャに関連する処理などは未対応なのですが,GPUのシェーダに慣れたプログラマがISPCを利用するには良いかもしれませんね.

特にCompute Shaderなどでテクスチャを使用しない演算処理などを書いている場合にCPU側に持っていきつつSIMDを活用したいというケースでは重宝しそうです.

なお,HLSL以外にGitHubリポジトリではGLSLに対応したいというようなことも記載されています.