2017-06-23 4 views
0

プロジェクトでは、画面に表示する必要のある何千もの注釈(円、文字列、線、十字など)を持つ画像があります。基本的に、50,000の注釈があるとします。さて、CPUを使用して私の画面を描画し、これらの注釈のすべてをループして、deviceContext.DrawCircle(または線または十字)を使用して描くようにします。一旦すべてが私の画面とGPUにロードされました。私は約50秒の注釈をCPU上に再描画することなくズームすることができるようにしたい。これは約1秒かかるため、画像のズームには長すぎる。directx(sharpDX)CPUの代わりにGPUで画像にエフェクトを適用する

私の質問:すべてのコンポーネントを再描画しなくても、これらのアノテーションと画像全体をズームすることができます。私のズームは最大で50ms必要なので、CPUに戻って変更を適用して画面に再描画するのではなく、GPUに直接これらの変更を加えることを楽しみにしていたのです。...

答えて

0

レンダーターゲット|シェーダリソースビューを作成して描画します。そうであれば、たとえば平面のテクスチャとして簡単に使用できます。これは1つの大きなdrawcallを作成し、パフォーマンスに影響を与えずに望みどおりにズームすることができます。最適な最適化は、描画とプレゼンテーションに2つのレンダリングターゲットを使用し、それらを現在のものにスワップすることです。アクセス違反なしで非同期で作業することができます。

関連する問題