2018.10.16

そろそろ移行するか

先日の記事からそろそろHLSLのシェーダコンパイラはfxcからdxcに移行するかなぁ。

Physically Based Renderingがオンラインで無料公開

Physically Based Renderingがオンラインで無料公開になったみたいですね。

http://www.pbr-book.org/

リポジトリ
https://github.com/mmp/pbrt-v3

2018.10.13

EA SEEDのHalcyonのDirect3D12やVulkan向けのシェーダの話

Running Microsoft FXC in Docker
https://www.wihlidal.com/blog/pipeline/2018-09-17-linux-fxc-docker/

1か月くらい前に出てる記事ですが、ようやく読みました。

ちょうどこの記事では、EA SEEDのHalcyon(R&DチームのSEEDのエンジン。PICA PICAデモなどで使用)のシェーダの話が書かれています。

まず、Direct3D12には旧来型のHLSL 5.1までのDXBCを出力するfxcのコンパイラとHLSL 6.xからのLLVMベースのDirectXShaderCompiler(DXC)がありますが、ドライバが枯れている分DXBCがDXCが出力するDXILにパフォーマンス的に勝つこともあるし、DXILのシェーダが問題になることも(ただし、オープンソースなので報告すると数日で修正される)あるので、DXBCが使われるケースはまだまだあるようですね。

Halcyonではそうした事情から、シェーダはfxcとDXCのものが混在しているようですね。

続いてVulkanの話ですが、HalcyonではVulkanのSPIR-VのシェーダはDXCから出力しているそうです。DXCは当初は、SPIR-Vのバイナリを出力することはできなかったわけですが、現在はGoogleのエンジニアが加わり、HLSLからSPIR-Vをのバイナリ出力ができるようになりました。

…ということで、HalcyonではシェーダはすべてHLSLが使われているようですね(GLSLは使われていない)。

この記事で興味深いのはDirect3D12とVulkan出のシェーダの比較ですね。記事中の表では、各シェーダのDirect3D12とVulkanのパフォーマンスが比較されています。Direct3D12ではDXBCとDXILのどちらが使用されているかも記述されてます(Using DXBC)。Direct3D12では37のシェーダのうちDXBCが使われてるものは5つある、といった感じです。

この表から見て取れるものとして、

・全体としてはDirect3D12側がパフォーマンス
・DXIL(Using DXBCがNo)とVuklkanの処理時間が同じものはDXCのSPIR-V出力がほぼ同じパフォーマンスが出せているし、場合によってはVulkanが勝つものもある
・DXBCが用いられていて、Vulkanを引き離すところがある(DXILとの比較がないですが、おそらくDXILが遅い)

パフォーマンスの差は、GPUのドライバの最適化度具合なわけですが、大きく離れていたりDXBCがSPIR-Vに負けるケースなどについては細かく記事中で言及されています(LightingとかReflectionパス)。

DXCのSPIR-V出力の完成度に関しては、あまり自分で検証したことがなかったのですがこの記事を見ていると完成度が高まってきたところはありそうですね。まだ、問題のある個所はありますがそろそろ移行を考えるには良い時期なのかもしれませんね。

ちょっと一か月遅れぐらいで読みましたが、興味深い記事でした。


2018.10.12

UnityのHDSRPを使ったサンプルアセットFilm Sample Project

UnityのHDSRPを使ったサンプルアセットFilm Sample Projectがアセットストアに公開されていますね。

Film Sample Project
https://assetstore.unity.com/packages/templates/film-sample-project-130415

このサンプルはe Adam 2: The MirrorやBaymax Dreamsのような映像作品をUnityで作る人向けのサンプルのようでHD Scriptable Render Pipeline、Post Processing Stack V2、Timeline、Cinemachineが使われてるようですね。


Unityのバージョンは2018.2.x以上が必要だそうです。

2018.10.11

今日のRTXな話題

まだ、RS5の正式リリースに合わせた形になっていないようなので、少し待ちですかねぇ。

«DirectMLって