4

ゲーム用の DirectX 11 オーバーレイを作成しています。テクスチャの作成は非常に簡単で、私は C/C++ について十分な知識を持っています。

私が抱えている問題は、テスト ウィンドウでテクスチャを印刷できることですが、カメラの角度を変更するとすぐにテクスチャが移動します。それがほとんどの人が望んでいることです。

私が知りたいのは、カメラが動いているかどうかに関係なく、常に画面に表示されるように 2D で何かを印刷する方法です。

4

1 に答える 1

3

基本的に、dx11 を使用しているため、シェーダーを使用して要素をレンダリングします。

したがって、標準の 3D オブジェクトは通常、次のガイドラインに従います。

頂点シェーダーでは、すべてのロットを乗算して 3D から 2D に変換します。

必要なのは要素を 2D (カメラに関連しない) で表示することなので、ビュー/投影を考慮しない新しいシェーダーを簡単に作成できるため、頂点シェーダーでこれらのマトリックスを使用しないでください。 . (2D 変換には引き続き world を使用できます)。

これが最も簡単な方法です。ピクセル単位の正確な 2D 要素が必要な場合は、ビルボード トランスフォーム/シェーダーを作成する必要があります。基本的に、レンダー ターゲットの解像度があり、標準のレンダー スペースは -1 -> 1 であるため、スケール/トランスレーションを変更して、これらの両方のスペースの間で変換します。

オーバーレイをレンダリングするときは、深度を完全に無効にすることも確認してください。

サンプルが必要な場合は、すぐに作成しますが、非常に簡単なはずです.

于 2013-07-20T20:53:39.200 に答える