« GoProの動画コーデックのオープンソース化 | トップページ | 最近のDirect3D12の更新の話を書いた記事 »

2017.11.03

Microsoftの新しいHDRサンプルの話

※今回の記事は、sRGBまでのモニタで撮っていることとtJPEGにしているのでHDRディスプレイ上の輝度の違いはわかりません(100nitsより低い値を設定すればsRGBでもこのプロググラムの動作自体は見れますが)。

MicrosoftのXbox Oneも含めたサンプルに新しいHDRディスプレイ向けサンプルが追加されていました。

https://github.com/Microsoft/Xbox-ATG-Samples/tree/master/UWPSamples/Graphics

SimpleHDR_UWPとSimpleHDR_UWP12がありますが、これはDirect3D11かDirect3D12の違いです。

このサンプルはリニア空間でのレンダーターゲットの出力値がsRGBやST.2084上でどういう値かやディスプレイ上では何nitsになるかがわかるようになっています。

このサンプルでは、モードが二つあって、キーで切り替えができます。まずはデフォルトの画面が下記です。

Hdr001

この画面では、4つの白矩形がありますが、左から50nits、100nits(Paper White)、600nits、1,000nitsになっています。各矩形の上には、リニア空間での輝度、sRGBカーブ上の値(100nits越えると1.0にクランプ)、ST.2084上の値、nitsの数値も出ています。

下記の画像で赤丸で囲った一番右に関しては、ゲームパッドやキーボードでHDR Scene Valuesを変えることができます。

Hdr003

次にモードを切り替えるとST.2084のカーブが出てきます出てきます。モード切替は、この画面だとXbox OneコントローラーのAボタンですが、キーボードだと別なキーが割り当てられてます。

Hdr002

このモードではカーブ上の輝度で描画した矩形とPaper Whiteが並んで比較されます。下記の画像でいうと右上の赤で囲った部分ですね。この画面では、黄色で囲ったカーブ上の点も動かすことができます。

このカーブは、HDR10の規格の10,000nitsまで行けますが、テレビやディスプレイの輝度が出せないところはもちろん出ません。

Hdr004

今回のサンプルは、DirectX-Graphics-SamplesのHDRサンプルと比較して、ディスプレイによってどこまでの輝度が出るか確認しやすいものになっています。
DirectX-Graphics-SamplesのHDRサンプル
https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12HDR

今回のサンプルでは、手持ちのHDRディスプレイでどこまで出せるかというあたりがわかりやすいのがいいですね。ただし、高い輝度で描画するピクセルがたくさんあると全体の輝度が下がる(熱対策などで)ようなものがあるので、通常、HDRテレビやディスプレイはすべてピクセルで性能の最大輝度は出せないことが大半です。輝度を測定できるような装置での計測などもできるとよいですね。

なお、EIZOのColorEdge PROMINENCEなどはそういう輝度落ちがないのですが、新車買える価格ですね。

http://www.eizo.co.jp/products/ce/cg3145/index.html

« GoProの動画コーデックのオープンソース化 | トップページ | 最近のDirect3D12の更新の話を書いた記事 »

Programming」カテゴリの記事

画像付き」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« GoProの動画コーデックのオープンソース化 | トップページ | 最近のDirect3D12の更新の話を書いた記事 »