フォト

Google AdSense


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

« 2016年7月 | トップページ | 2016年9月 »

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

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

2016.08.23

Deferred Renderingを再考する

Visibility Bufferに刺激されて一回Deferred Renderingを再考してみてもいいのかもしれないですねぇ。

とりあえず、現在のGPUのアーキテクチャで効率化できそうなネタは考えてみたいところね。

今週はCEDEC

今年も一応、行きます。

割り込まれるような仕事も今はないのでフル参戦ですね。

Visibility Buffer

GDC Europe 2016でWolfgang Engel氏が"The filtered and Culled Visibility Buffer"ってのを発表したんですね。

GDCE 2016 – The filtered and Culled Visibility Buffer
http://www.confettispecialfx.com/gdce-2016-the-filtered-and-culled-visibility-buffer-2/

最近は、PCゲームなんかでは4K対応が結構始まってきてはいますが、GPU自身のいろいろな制約から1080pでやっていた手法がなかなかつらいということはありますが、特にメモリの帯域幅の制約からDeferred RenderingのG-bufferきつくない?って話があるわけですが、Visibility Bufferってアプローチで解決しようとしているようですね。

Visibility BufferのアプローチでモデルとしたG-buffer(10枚目ぐらいから比較が続く)と比較して半分くらいのメモリ
で済むということみたいで、ESRAMあるXbox Oneみたいな環境では結構よさそうではありますね。

ちょっと真面目に読んでみたいところですね。

なお、近々サンプルコードは公開されるようですね。

2016.08.19

NVIDIA Nsight Visual Studio Edition 5.2のVulkan向け機能について書いた

NVIDIA Nsight Visual Studio Edition 5.2のVulkan向け機能について書いておきました。

NVIDIA Nsight Visual Studio Edition 5.2 RC1を見ていく~Vulkan編
http://www.shader.jp/?p=1837

まだまだパフォーマンス分析とか機能面で足らない部分は多いものの全くツールがない状況からは解放されそうですね。RenderDocもよいのですが、GPUベンダー製じゃないとできないことはありますからねぇ。

2016.08.18

NVIDIA Nsight Visual Studio Edition 5.2 RC1のDirect3D12周りの機能がよかったので書いた

NVIDIA Nsight Visual Studio Edition 5.2 RC1がリリースされました。

Nsight Visual Studio Edition 5.2 release candidate is now available for download!
https://developer.nvidia.com/nsight-visual-studio-edition-52-release-candidate-now-available-download

リリースノート:Nsight Visual Studio Edition 5.2 New Features
https://developer.nvidia.com/nsight-visual-studio-edition-5_2-new-features

Direct3D12関連機能の更新が気になっていろいろと試してみた内容を記事にしました。

NVIDIA Nsight Visual Studio Edition 5.2 RC1を見ていく~Direct3D12編
http://www.shader.jp/?p=1788

次回はVulkanで取り上げます。機能はまだ少ないのですが、わりと現状でも助かる部分は多いので。

2016.08.16

お盆休み最終

今年はなんか2日ぐらいいつもより多めの休みな感じですが、今日が最終日ですね。

今年は日程的にCEDECが8月なのでお盆休み明けるとすぐにCEDECですねぇ。

2016.08.04

現状のHLSL 6.0

とりあえず、Windows 10 SDK 1607が出たので見てみました。GPUはGeForce GTX 1080。

・HLSL 6.0のシェーダコンパイラはまだ付属しないので使用できない(ドキュメントで使用が公開だけ)
・fxcは手つかずと思いきやRoot Signature 1.1のコンパイルには対応している。Visual Studio 2015 Update 3上では対応してないので自分でコマンドラインから呼ぶこと
ID3D12Device::CheckFeatureSupportでD3D12_FEATURE_D3D12_OPTIONS1を指定してみたけどD3D12_FEATURE_DATA_D3D12_OPTIONS1のWaveOpsは現在のドライバではfalseだったのでWave Operationは使えない


って感じで、まだ駄目なようですね。

http://forums.directxtech.com/index.php?topic=5717.0

2016.08.03

Windows 10 Anniversary Update SDK

お、Windows 10 Anniversary Update SDKも来たみたいですね。

Windows 10 Anniversary Update SDK Now Available! Windows Store Open for Submissions
https://blogs.windows.com/buildingapps/2016/08/02/windows-10-anniversary-update-sdk-14393/

2016.08.02

突然、Direct3D12のアップデートがくるっぽいので

Windows 10 Aniversary Updateに合わせて突然、Direct3D12のアップデートがくるっぽいのでメモがてら書いておきました。

Windows 10 Aniversary Updateに関連したDirect3D12のアップデート HLSL 6.0など
http://www.shader.jp/?p=1771

ネタ元はDirectXのフォーラムの下記のスレですね。

http://forums.directxtech.com/index.php?topic=5717.0

2016.08.01

やっとFBXから

やっとFBXからStingrayPBSのマテリアルの情報をとれるようになってきたので、ようやく自分環境でPBRなテクスチャの割り当てしたマテリアルをMayaから持っていけるなぁ。

Direct3DやOpenGL、VulkanでWarp shuffle

普段あまりCUDAのコードを書くことがないのでNVIDIA GPU向けの専用機能を使うことが少ないのですが、Direct3DやOpenGLでそれぞれNVIDIA GPU用の拡張を使う記事が出てました。

Unlocking GPU Intrinsics in HLSL
https://developer.nvidia.com/unlocking-gpu-intrinsics-hlsl

Reading Between The Threads: Shader Intrinsics
https://developer.nvidia.com/reading-between-threads-shader-intrinsics

Keplar以降だとWarp shuffleって機能が使えるんですなぁ。

CUDAプログラムのKepler向け最適化
http://on-demand.gputechconf.com/gtc/2013/jp/sessions/8002.pdf

同一ワープ内のスレッドのレジスタが読めるということですが、スレッドグループ共有メモリを使わずにスレッド間のデータのやり取りができて使い方によっては高速化見込めるのね。

CUDAで書いてるようなアルゴリズムをHLSLやGLSLのCompute Shaderなんかに持ってくる時にはGeForce専用ならいいのかもしれないですねぇ。

« 2016年7月 | トップページ | 2016年9月 »