問題タブ [direct3d9]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
833 参照

direct3d - StretchRectはDF24またはINTZサーフェスで使用できますか?DF24またはINTZをマルチサンプリングできますか?

DF24から別のDF24(A​​TI固有)にStretchRectできますか?

INTZから別のINTZ(nVidia固有)にStretchRectできますか?

マルチサンプルサーフェスとしてDF24またはINTZを作成できますか?

0 投票する
3 に答える
203 参照

c++ - March09SDK に対して DX 9.0c アプリをコンパイル => 古い D​​X 9.0c DLL では実行できない => 問題 :)

サブジェクトからシナリオを実行できません。

DirectX 9 March 2009 SDK がインストールされています。これは 9、「サブ」バージョン c ですが、「サブサブ」バージョンは 41 であるため、ライブラリ (d3dx9.lib d3d9.lib) はエクスポートを dxd3d_41.dll にリンクしています。

DX9.0c を搭載しているが 2009 年 3 月から再配布できないマシンでアプリを実行しようとするとどうなるかは明らかです :)、dxd3d_41.dll が見つからないため失敗します。

この問題の標準的な解決策はどれですか? DX 9.0c を搭載したすべてのマシンでサポートされるように、アプリをコンパイルするにはどうすればよいですか? それは達成可能ですか?

ありがとう

0 投票する
3 に答える
1345 参照

c++ - Direct3D テクスチャの後処理/コピー

そのため、Direct3D の後処理を実装しようとしていますが、テクスチャへのレンダリングに問題があります。基本的に、私のプログラムは次のようになります。

かなりの量のコードがあるため、いくつかの部分を省略しました(一般的なアイデアを理解しようとしているだけです)。残念ながら、上記の結果は空白の画面になります。これが私がしたいことです:

  1. シーンをテクスチャ (HDR) にレンダリングする
  2. ブライトパス シェーダーを介して、そのテクスチャを 2 番目のテクスチャにレンダリングします。
  3. 2 番目のテクスチャを可視 LDR サーフェスにレンダリングする

上記の最後の行を

その後、すべてが機能します。ブライトパス シェーダーをスキップして、単純にピクセルを通過させてみましたが、どちらもうまくいきません。

0 投票する
1 に答える
295 参照

3d - 3Dアプリケーションでターゲティング円を描画する

私は学習のためだけに3Dゲームに取り組んでいます。

ハイトマップから生成された3Dワールドと、そのワールドにオーバーレイされたさまざまなメッシュベースのオブジェクトがあります。

プレイヤーが自分にできる世界のオブジェクトをターゲットにできるようにしたいのですが、ターゲットの対象が立っている地形やオブジェクトにターゲットの円を描きたいのです。World of Warcraftをプレイしたことがある場合は、私が何を意味するのかがわかります。誰かをターゲットにすると、その下の床に赤い円が描かれます。

しかし、それは彼らが立っているものすべてに投影されます。これは地形である可能性があります。したがって、一方の円の一部と他方の円の一部で、異なる勾配を持つ異なるメッシュポリゴンに投影する必要がある場合があります。または、アイテムに投影する必要がある場合があります。または、おそらく一方に一部、もう一方に一部。

これを効率的に行う方法はありますか?チートと近似も大歓迎です。ゲームではいつものように、100%正確ではなく効果的に見えるものを探しています。

ソリューションにとって重要な場合は、directx9とシェーダーモデル2を使用します。

0 投票する
1 に答える
1600 参照

c++ - D3D9 で SetTransform を使用できない

IDirect3DDevice9::SetTransform の動作を妨げるものは何ですか? 私は Direct3D9 で変換行列を使用するための多くのチュートリアルを見てきまし。そして、私が知る限り、彼らは皆同じ​​ようにやっています。

テクスチャポリゴンを変換するためだけにコードを書こうとしています。D3DXMatrixTranslation で初期化されたマトリックスを使用して SetTransform を呼び出すと、S_OK が返されます。ただし、画面に描画される実際のポリゴンは変換されません。

0 投票する
1 に答える
282 参照

windows-vista - Vista で Aero をオフにすると動作がおかしくなる

Aero が無効になっているマシンで実行する必要がある directx9 アプリケーションがあります。アプリはウィンドウ モードで実行されます。ウィンドウが最初に作成されたときは、1 つの画面内で問題なく表示されます。同じグラフィックス アダプター (および GPU) に接続された 2 つの画面にまたがるようにウィンドウを移動すると、一方の画面の領域が他方の画面の領域を反映しているように見えます。異なるグラフィックス アダプタに接続された 2 つの画面にまたがっても、問題はありません。

これは、2009 年 8 月の DirectX SDK の「チュートリアル 2: 頂点」など、標準のウィンドウ アプリで簡単に複製できます。

ウィンドウ化された OpenGL アプリケーションでも同じ問題が発生します。

Windows が Aero を有効にして実行されている場合、これは問題ではありませんが、Aero を無効にしてアプリケーションを実行する必要があります。(Aero は、実際のアプリケーションで他の問題を引き起こします。GPU で実行している処理が原因で、予期しないタイミングで独自のバックバッファーをフリップし、レンダリング スレッドで検出できない方法でディスプレイの滑らかさを台無しにします。)

nVidia Quatro 4800 グラフィックス カードを搭載した Windows Vista Enterprise x64 を実行しています。

--そして、nVidia コントロール パネルで 90 度回転した画面を使用する場合にのみ、これが問題になることに気付きました。そうですか…それで?回転した画面を使用する場合、誰かが解決策を提案できますか?

何か案は?

0 投票する
1 に答える
797 参照

windows - Direct3D9 で書式設定されたテキストをレンダリングする方法は?

Direct3D9 で大量のテキスト (数行、おそらく数十行) を描画する必要があるアプリケーションを作成しています。テキストは厳密にフォーマットすることができ (つまり、さまざまな書体、スタイル、サイズ)、さまざまな文字セットの Unicode シンボルを含めることができます。最悪なのは、オンザフライで変更される可能性があるため、動的である必要があることです (レンダリング ワンス ディスプレイでは常にうまくいきません)。

これには 2 つの問題があります。1 つ目は、D3DXCreateFont への多くの呼び出しが必要になる可能性があることです。これにはコストがかかると思われます (よくわかりません)。もう 1 つのアプローチは、マルチパート ラインを描画する前にすべてのフォントを作成してから、それらを切り替えるだけです。これはより良い方法ですか? さて、線を描くときにオンザフライでフォント オブジェクトを作成し、それらをある種のフォント オブジェクト キャッシュに追加してから、新しいオブジェクトを作成する前にキャッシュを調べることもできますか? 最善のアプローチはどれだと思いますか?

2 つ目の問題は、D3DXFont が下線/取り消し線のフォント スタイルを認識していないように見えることです。D3DFONT は LOGFONT に基づいていますが、それらのフィールドは省略されています (斜体はサポートされています)。下線/取り消し線が本当に必要だとしましょう。どうすればよいですか? ID3DXFont に下線を強制する方法はありますか? 自分でそれらの線を引く必要がありますか (どうすれば速くできますか)? または、HDC で GDI を使用して描画し、それらのピクセルをテクスチャにコピーするように切り替える必要があります。これにより、適切なパフォーマンスが得られますか?

0 投票する
1 に答える
6852 参照

c++ - Direct3D9 (MultiSample レンダー ターゲット) でアンチエイリアシングを有効にする

D3D9 アプリケーションで AA を有効にしようとしていますが、サーフェスを正しく設定する方法がわかりません。これまでのところ、私は持っています:

初期化:

そして、各フレームについて:

しかし、画面に何も表示されません (すべて黒)。エラーは発生していません (すべての d3d 呼び出しの戻り値を確認します)。私は何を間違っていますか?

0 投票する
1 に答える
1215 参照

c++ - HLSL と ID3DXFont/ID3DXSprite

私は最初から始めましたが、私のコードはいくつかのテキストの総計を適切に表示します。スプライトのサポートを追加しています。私が遭遇した問題は、HLSL を認識していないように見えることです。テクニックを設定し、開始し、パスを開始し、スプライトを描画し、それらをフラッシュし、パスを終了しました。そして、D3D は VS 出力でこの小さな「FF から PS へのコンバーターの使用」を考え出します。VSも同様。私は HLSL で高度なことをしようとしているわけではありません。単にそれを使用して、もう少し慣れて、実装方法を知っていることを確認してください。ちなみに、これは C++0x の自動なので、自動型推論です (私は怠け者なので)。

ここで、RenderAndCleanUp は単純なテンプレート化された関数で、スプライトをループし、必要なものを破棄し、残りをレンダリングします。common->sprites は、すべてのスプライト オブジェクトの単純なベクトルです。DXTrace はオフにならないので、どの関数も失敗しないことを保証します。また、コントロール パネルを最大デバッグに設定しました。

D3DXHANDLE を確認しましたが、すべて非 NULL です。コンパイル エラー、エラー、警告は報告されません。

これは Direct3D9 を見たネイティブ C++ です。

0 投票する
1 に答える
575 参照

graphics - D3D9の対応するCopyResourceメソッド

IDirect3D10 :: CopyResource(...)インターフェイスを使用してD3D10の頂点/インデックスバッファをコピーするのは簡単です。

D3D9で同じ作業を行う方法は?これに似たAPIはありますか?