0

ID3DXRenderToSurface の複数のインスタンスを作成し、それらをスレッドで並行してレンダリングすることは可能ですか? 可能性は低いと思われますが、DirectX の特定の側面についてはまだやや気が遠くなるようなことがあるので、質問してみようと思いました。

それができなくても大したことではありません。私が取り組んでいるアプリケーションは (残念ながら) オブジェクト レンダリングをグループに分割してサーフェスにレンダリングし、完成したサーフェスをバック バッファにレンダリングするだけです。可能であれば、すべてのグループを順次ではなく並行してレンダリングできるといいなと思いました。

4

1 に答える 1

0

このインターフェイスを使用すると、バック バッファーではなく、指定されたサーフェスにレンダリングできます。何かをレンダリングするには、D3D デバイスの状態を設定し、そのメソッドを呼び出す必要があります。D3D9ではデバイス インターフェイスがスレッド セーフではありません。したがって、答えは「いいえ、このように複数のスレッドでレンダリングすることはできません」です。おそらく、いくつかのデバイスを作成し、そこに部分を描画してから、結果の画像を単一のデバイスに結合できますが、これが多くの利点をもたらすとは思えません (まったく機能する場合)。

マルチスレッド レンダリングをお探しの場合は、DX11 を使用してみてください。

于 2012-01-05T02:39:06.767 に答える