みなさんが、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
#DX11→DX9
__DX11からDX9__へ書き出す方法です。
__SharedTexture__ノードを見たところ、欲しいデータがとってこれそうだった、
__Renderer(DX11 MRT)__を使用し、以下のように作ってみました。
MRTはMulti Renderer Targetっていうみたいですが、
詳しいことは調べてみてください。(理解できてないとは言えない。)
フォーマットは__R16G16B16A16_Float__に統一し、
得られている情報を__Vector、AsSharedTexture__で処理しています。
あとRenderer(DX11 MRT)は、Previerwがそのままできないので、
__Preview(DX11 Texture)__を使うと良いかと思われます。
#具体的な使用例
vvvvではサンプルパッチを見つつ、改変しつつということが多いと思われます。
なので、以下の画像のように、
S(NODE)、R(NODE)を利用することで、別パッチから送ることができます。
基礎すぎかもしれませんが…参考までに。
なぜDX11からDX9に書き出したいのか…
たしか、kinect v2とかからのものをTextureとしてだったかな?
正直忘れました。←
何か、使う機会があったら、試してみてください。
小ネタでした。
Junky_Inc