フォト

Google AdSense

  • AdSense
無料ブログはココログ

2016.08.31

QuixelのMegascans

QuixelのMegascansがサービスを開始したようで、WordpressのMarmoset Toolbag ViewerでWebGLで表示をしてみる実験をShader.jpでしてみました(WordPressにはエディタ埋め込みのプラグインがあります)。

Megascans
https://megascans.se/

無料ギャラリー
https://megascans.se/library/free

QuixelのMegascansのアセットを表示してみるテスト
http://www.shader.jp/?p=1871

とりあえず、50ポイントポイントがあるのですが、3Dモデル付きでPBRテストのデータを集めるかなー。ただ、金属物が少ないなー。

2016.08.30

DXGI 1.5のHDR10対応回り

Windows 10 Anniversary UpdateのタイミングでDirect3D12のアップデートがありましたが、そのほかにDXGI 1.5についても更新が入っています。

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

このアップデートではHigh Dynamic Range and Wide Color GamutとVariable refresh rate displays(可変フレームレートディスプレイ。G-SyncとかFreeSyncとか)の2つのディスプレイ関連のアップデートが入っています。

今回は、HDR TVとかに関連するHigh Dynamic Range and Wide Color Gamutの話題をしますが、下記に結構まとまったドキュメントがあります。

High Dynamic Range and Wide Color Gamut
https://msdn.microsoft.com/en-us/library/windows/desktop/mt742103(v=vs.85).aspx

DXGI 1.5ではHDR TVの規格のうちHDR10に対応したようですね。HDR10は、BT.2020の色空間(今までのはBT.709)とST.2084というトーンカーブが規格になってるようですね。ST.2084は人間の視覚特性にそったPQ: Perceptual Quantizer方式とかってもののようだそうですね。

こうした新しい規格に対して、どのようにトーンマッピングするかなどは悩むところではありますが、MicrosoftのサンプルのMiniEngineの参考になるシェーダがあります。
ColorSpaceUtility.hlsli

https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/MiniEngine/Core/Shaders/ColorSpaceUtility.hlsli

このHLSL Headerを見ているといろいろと便利関数がありますが、ひとまずライティングやシェーディングをリニアスペースでやっているようであれば、LinearToREC2084()関数を使うのがよさそうですね。

あとは、sRGBからST.2084であればREC709toREC2020()でよいのかもしれませんね。

あと、HDR10にはメタデータをセットするということですが、IDXGISwapChain4::SetHDRMetaDataでセットできるようですね。

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

メタデータに関してはDXGI_HDR_METADATA_HDR10 構造体になっています。

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

この構造体の適切なパラメータ設定に関してはちょっとわからない部分が多いので、調べないといけないですね。

«Deferred Renderingを再考する