問題タブ [direct3d]
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.
c++ - DirectX 9 または 10 オーバーレイ
DirectX 9 または 10 を使用してゲーム上にオーバーレイを描画するにはどうすればよいですか?
非推奨の DirectShow コードを含むコードを見つけましたが、実行されません。
resources - 実行中の 2D ゲームから画像を抽出する
Direct3D に基づく 2D ゲームがあります。このゲームには多くのグラフィックとアニメーションがあります。実行中のゲームからアニメーション イメージ シーケンスを抽出する最良の方法は何ですか (メモリ ダンプを使用するなど)? そのような目的のための特別なツールはありますか?
directx - DirectXのちらつきビデオ
了解しました。正常に機能しているように見えるカスタムVMR9アロケータ/プレゼンターを作成しました。ただし、ビデオフレームをアロケータ/プレゼンターサーフェスからアプリケーションサーフェスにコピーしようとすると、ビデオがちらつくように見えます。オーディオの再生は問題ないので、マシンがダウンしているなどの問題ではないと確信しています。これは、レンダリングループにあるコードです。
ただし、これに変更すると(バッファのクリアをコメントアウト)
このちらつきは消えます。これはどういうわけか悪い形/ハックであり、それが解決するよりも多くの問題を引き起こす可能性があるのではないかと心配しています。この分野での経験はありますか?より良い解決策はありますか?
ありがとう!
c++ - Windows XPでモニターのプラグを抜いた後、Direct3Dが回復しないのはなぜですか?
運が悪かった面白いバグが出てきました。ネイティブコードを使用するウィンドウ化されたDirect3D9プログラムで、次のようなものを使用して紛失したデバイスを処理します。
これはVistaでは正常に機能しますが、XPでは大きな問題があるようです。モニターのプラグが抜かれている場合、またはKVMを介してPCから切り替えられている場合、を受信することはありませんD3DERR_DEVICELOST
。私が今までに受け取ったTestCooperativeLevelからの唯一の戻り値はですD3DERR_DEVICENOTRESET
。そして、Resetを呼び出すたびに、D3DERR_INVALIDCALLが発生します。私はこれを行うことによってプログラムにシャットダウンコードを使用するように強制しようとしました:
しかし、変化はありませんでした。この問題は、Windows XPにのみ影響するようです(これまでのところ、SP2、SP3でテストされています)。2007年8月のDXSDKを使用していますが、現時点では更新できません。誰かが以前にこの問題を見たことがありますか、またはデバイスをリセットできない理由を知っていますか?
更新:私は解決策を見つけたと思いますが、それでも上記の2番目のコードセグメントの失敗に困惑しています。DirectXデバッグランタイムをリモートデバッグで動作させるようにした後、リセット機能が失敗し続ける理由は、解放されていないリソースがあったためであることに気付きました。ただし、回答に示されているように適用すると、まったく同じリリースコードで問題が解決しました。プログラムがrecover関数の呼び出しの間にD3DPOOL_DEFAULTオブジェクトを作成していないことを確認しました。この質問のコードセグメントに示されているように、リセットを実行すると問題を引き起こす可能性のあるDirect3Dの構造に何かがありますか?
graphics - Direct3D シェーダー バイトコードをロードおよび処理/逆アセンブルするためのライブラリはありますか?
fxc によって生成された Direct3D (10,11) シェーダー バイトコード ファイルをロードして処理/逆アセンブルするためのライブラリはありますか?
多くの開発者 (およびハードウェア ベンダー) が D3D シェーダー バイトコード フォーマットを読み込んで処理するための内部ツールを持っていることは知っていますが、D3D10 の時点でシェーダー バイトコード フォーマットはプライベートでバイナリのみであるため、使用するための公開リソースがあるかどうか疑問に思います。それ。
c# - Direct3Dでのマウスクリック検出とTransformation2D
スプライトを使用して、D3Dウィンドウに画像を描画します。長方形(0、0、幅、高さ)内のすべてのスプライトに画像を描画し、Matrix.Transformation2Dを使用してレンダリングされたビューに画像を配置します。
例:
特定の画像がクリックされたことをどのように検出できますか?
既知のパラメーター:1。マウスの位置:mouseX、mouseY2.すべてのtransformation2Dパラメーター3.スプライト内の画像のサイズと位置。
これは私が欲しいものを得るのに十分なデータであるはずですが、私には何をすべきか見当がつかないのです。
ところで-計算に含める世界の変換やその他はありません。スプライトを変換するだけです。
directx - D3D9 頂点内のフィールドの位置 (位置、法線など)
次のように定義されている DirectX アプリケーション用に作成された 3D モデルを読み取ろうとしています。
- ファイル ヘッダーには、メッシュの Flexible Vertex Format (FVF) が示されています (実際、テストしたメッシュには D3DFVF_{XYZ,DIFFUSE,NORMAL,TEX1,TEX2} の任意の組み合わせがあります)。
- 次に、
n
頂点は線形パターンで与えられ、フィールドは FVF に従って表示されます。
ただし、これらのフィールドの順序はわかりません。ロジックは、DirectX ドキュメントのどこかに定義されているということですが、見つけることができませんでした。たとえば、これら 2 つの構造のうち、FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL
(C 構文ですが、この問題はすべての言語に適用されます) で正しいのはどれですか?
この質問に対する一般的な回答と、考えられるすべてのフィールド (例: XYZ before DIFFUSE before NORMAL before TEX1 before TEX2
) を教えてください。私はそれを見つけることができなかったので、ドキュメントの正しいページへのポインターも問題ありません:)。
c# - Direct3d/C# - スプライトに描かれた四角形の下の領域をぼかす
それを行う方法はありますか?半透明のウィンドウであるはずの長方形を描いています。半透明のテクスチャを描画することで透明にすることができましたが、ウィンドウの下にあるものは何でもぼかしたいと思っています。
通常 (例: GDI を使用)、領域のビットマップを作成し、それをぼかして、ウィンドウの背景としてペイントします。Direct3D では、既にレンダリングされている領域を取得する方法さえわかりません。あるいは、別のアプローチがあるかもしれませんね。助けてください。
c++ - 1つの頂点バッファに複数のメッシュがありますか?
メッシュごとに1つの頂点バッファーを使用する必要がありますか、それとも1つの頂点バッファーに複数のメッシュを格納できますか?もしそうなら、私はそれをすべきですか、そして私はそれをどのように行うでしょうか?
c++ - Direct3D テクスチャの後処理/コピー
そのため、Direct3D の後処理を実装しようとしていますが、テクスチャへのレンダリングに問題があります。基本的に、私のプログラムは次のようになります。
かなりの量のコードがあるため、いくつかの部分を省略しました(一般的なアイデアを理解しようとしているだけです)。残念ながら、上記の結果は空白の画面になります。これが私がしたいことです:
- シーンをテクスチャ (HDR) にレンダリングする
- ブライトパス シェーダーを介して、そのテクスチャを 2 番目のテクスチャにレンダリングします。
- 2 番目のテクスチャを可視 LDR サーフェスにレンダリングする
上記の最後の行を
に
その後、すべてが機能します。ブライトパス シェーダーをスキップして、単純にピクセルを通過させてみましたが、どちらもうまくいきません。