DX11RendererからDX9Rendererに書き出したい

  • 4
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

みなさんが、Advent Calendarでガッツリ長文を書いてる中、
申し訳ないという気持ちもありつつ、
DX11のRendererからDX9のRendererにTextureとして
吐き出すという小ネタを紹介しようと思います。
ついでに、DX9からDX11の書き方も紹介しておきます。

DX9→DX11

DX9→DX11は「DX9ToDX11」のノードがあるので、
Textureは、簡単に吐き出すことができます。
1.DX9 Texture:RendererからTextureとして吐き出す
2.DX9ToDX11:DX9からDX11用のTextureへ変換
3.通常通りTextureとして使用する。
という流れになります。
DX9toDX11.v4p

dx9_dx11.JPG

DX11→DX9

DX11からDX9へ書き出す方法です。
SharedTextureノードを見たところ、欲しいデータがとってこれそうだった、
Renderer(DX11 MRT)を使用し、以下のように作ってみました。

MRTはMulti Renderer Targetっていうみたいですが、
詳しいことは調べてみてください。(理解できてないとは言えない。)

フォーマットはR16G16B16A16_Floatに統一し、
得られている情報をVector、AsSharedTextureで処理しています。
あとRenderer(DX11 MRT)は、Previerwがそのままできないので、
Preview(DX11 Texture)を使うと良いかと思われます。

DX11_DX9_1.JPG

DX11ToDX9_sample.v4p

具体的な使用例

vvvvではサンプルパッチを見つつ、改変しつつということが多いと思われます。
なので、以下の画像のように、
S(NODE)、R(NODE)を利用することで、別パッチから送ることができます。
基礎すぎかもしれませんが…参考までに。

dx11_DX9_2.JPG


なぜDX11からDX9に書き出したいのか…
たしか、kinect v2とかからのものをTextureとしてだったかな?
正直忘れました。←

何か、使う機会があったら、試してみてください。
小ネタでした。

Junky_Inc

この投稿は VVVV Advent Calendar 201411日目の記事です。