フォト

Google AdSense

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

« Vaio Pro 11に増設バッテリー | トップページ | ジオメトリシェーダとStream Output »

2013.07.17

Direct3D11.1 UAVを使ったStream Output的テクニックの実験

Vaio Pro 11のGPUがIntel HD 4400なのでDirect3D11.1対応ということで全シェーダステージUAVアクセスの実験をしてみました。

ソース(要FBX SDK。そのうちシンプルなサンプル書きます)
https://dl.dropboxusercontent.com/u/10225794/FBXLoaderUAV.zip

やっつけなのでこの前のPerfume FBXの上に適当にやってます。関数名変数名気にしないでください。

とりあえず、FBXLoaderSample.cppのRender()関数だけ見てもらえば、流れがつかめるかな?

・第1パス
頂点シェーダだけバインド、ピクセルシェーダはNULL。

vsUAVTest.hlslが頂点シェーダで動くのですが、このシェーダはu1レジスタにセットされたRWByteAddressBufferに頂点バッファのうちPositionをStoreします。

・第2パス
頂点シェーダとピクセルシェーダをバインド。simpleRenderVS.hlslが頂点シェーダで走るのですが、このシェーダはu1レジスタにセットされたRWByteAddressBufferからPositionを読み出して描画に使います。

ここまで見るとわかりますが、従来のジオメトリシェーダで行うStream outputを頂点シェーダでやってみたという話ですね。

ジオメトリシェーダを走らせないので、OpenGLのTransformfeedback的ですね。速度的な優位性はまだ評価していないので追々やっていきます。

« Vaio Pro 11に増設バッテリー | トップページ | ジオメトリシェーダとStream Output »

Programming」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

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

« Vaio Pro 11に増設バッテリー | トップページ | ジオメトリシェーダとStream Output »