問題タブ [directx-9]

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 に答える
675 参照

directx - DirectXでの3Dおよび2D表示

3Dシーン上にいくつかのスプライトをレンダリングしたいのですが、D3Dスプライトを有効にすると、3Dシーンが消え、それらのスプライトしか表示されません。

設定:

レンダリング:

レンダリング機能:

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

directx-9 - 2Dテクスチャでtex3Dを呼び出すことは合法ですか?

Direct3D9で、HLSLプログラムでtex3Dを使用すると、2Dテクスチャがバインドされたサンプラーで何が起こりますか?これは合法的な操作ですか、それとも未定義ですか?

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

directx - SlimDX/DirectX9/C# - テクスチャ内のピクセル データにアクセスする方法

これは、StackOverflow に関する初めての質問です。万歳! 仕事と個人的なプログラミングの謎の両方で、日常的に StackOverflow を使用していると正直に言えます。99.9% の確率で、実際にここでも必要な答えが見つかります。これは素晴らしいことです!

実際に機能するものが見つからないように見えるため、現在の問題は実際には少し困惑しました。私はすでに GameDev.net のいくつかの投稿を読み、ネット上で他のリソースを見つけましたが、それを整理することはできません。

私は XNA 用に書いた小さな 2D エンジンを SlimDX (現時点では DirectX9 のみ) に移植している最中です。 XNA を使用して 6 か月。基本的なレンダリング機能のほとんどを完了し、実際に XNA SpriteBatch を大量の追加機能で再作成することができました (XNA では本当に見逃していました)。

私が仕事に取り掛かろうとしている最後のことの 1 つは、特定のテクスチャからソース四角形を抽出し、それをタイリングに使用することです。理由: タイリングしないときは、UV をいじって表示したいソース (例: 0.3;0.3 から 0.5;0.5) を取得できますが、タイリングするときは UV をタイリングする必要があります (0;0 から 2;2は、画像を 2 回並べることを意味します)、したがって、カットアウト テクスチャが必要です。

長い話を短くするために、私は以下を使用しようとします:

さまざまなピクセルを試しましたが、すべて偽のデータを提供しているようです。たとえば、実際に現在のアバターを使用して、DataRectangle から取得したバッファーが画像内の実際のピクセルと一致するかどうかを確認しようとしましたが、うまくいきませんでした (フォーマットが正しいかどうかも確認しました)。

私は何を間違っていますか?それを行うより良い方法はありますか?または、私の UV ストーリーが間違っているので、タイルを張る前にソース長方形を切り取るよりもはるかに簡単に解決できますか?

お時間をいただきありがとうございます。

レナード・フォンテイン

更新 #1

実際には、バイト配列から次の変換を使用して、ピクセル データをビットマップにエクスポートすることができました。

したがって、データは私が思っていたほど偽物ではないようです。ただし、次の問題は、ソースの四角形で指定されたピクセルを取得し、それらを新しいテクスチャにコピーすることです。切り取ろうとしている画像は 150x150 ですが、何らかの理由で 256x256 の画像 (2 のべき乗) に引き伸ばされていますが、実際に 150x150 を超えるピクセルにアクセスしようとすると、OutOfBounds 例外がスローされます。また、実際に 256x256 の 2 つ目の空白のテクスチャを作成しようとすると、何を入れても真っ黒になってしまいます。

これが私の現在のコードです:

私の新しい (追加の) 質問は次のとおりです。アルファ チャネルを含む、あるテクスチャから別の小さなテクスチャにピクセルを移動するにはどうすればよいですか? 元のテクスチャが 150x150 の場合、SurfaceDescription が 256x256 を報告するのはなぜですか?

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

c++ - DirectXの複数のDLLバージョン?

DirectX9には次のような複数のDLLバージョンがあることがわかります

  • d3d9.dll
  • d3d9_25.dll
  • d3d9_42.dll
  • d3d9_43.dll

違いは何ですか、どうすればそれを検出できますか?私はいつもを使用していますが、アプリケーションがを使用しGetModuleHandle("d3d9.dll");ている場合d3d9_43.dll、コードはアプリケーションがDirectXを使用していることを検出しませんか?すべてのDLLバージョンをハードコーディングせずにそれを検出するにはどうすればよいですか?

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

c++ - モデルを描画するDirectx9メソッド

古典的な方法以外に他の方法があるのだろうかと思っていました

画面にモデルを描画するため。

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

visual-studio-2010 - 致命的なエラーLNK1104:ファイル'd3dc9.lib'を開くことができません

私は現在、ゲームプログラミングの本を読んでいて、directx9コードをコンパイルしようとしています。

私は最新のDirectX11SDKを持っており、コードにはこれらのコード行があります

しかし、私はLINKを取得します:致命的なエラーLNK1104:ファイル'd3dc9.lib'を開くことができません

このファイルを見つけるように設定する方法がわかりませんが、DirectX 11 SDKのLibファイル内になく、要求したものではないため、実際に要求する理由がわかりません。にとって。

0 投票する
2 に答える
4495 参照

direct3d - 「WaitForVBlank」を使用して Direct3d9 で VSYNC 割り込みを取得する方法

私は Direct3D9 の初心者で、いくつかのことを試しています。「IDirect3DDevice9Ex」デバイスで「WaitForVSync」を使用したいと考えています。ただし、それを使用して VSYNC 割り込みを取得する方法がわかりません。MSDN やコード スニペットに関するヘルプはあまり見つかりませんでした。どんな助けでも大歓迎です。

ありがとう、モッツ

0 投票する
2 に答える
850 参照

c++ - 2つの三角形を整列させるための行列を決定する必要があります

2つの合同であることがわかっている三角形を3Dで整列させるために必要な変換を表す行列を決定する必要があります。以前は別のアプローチをとることについて質問しようとしましたが、それで多くの問題にぶつかっていたので、現在は別のアイデアを試すことを検討しています。

三角形()を原点にある別の()DEFと同じ位置と方向に移動するために必要な平行移動と回転を表す行列を作成する方法を教えてもらえますか?ABCA

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

visual-studio-2010 - DirectX10でIDirect3DSurface9を描画する

私はDirectX9をかなりの量使用してきましたが、最近DirectX 10に切り替えました。9のデバイスメソッドの多くが欠落しているか、変更されていることに気付きました。たとえば、DX9では、StretchRectメソッドを使用して画面にサーフェスを描画しました。

私の問題はこれです:画面に描画する必要があるIDirect3DSurface9がありますが、DirectX 10を使用しています。10のグラフィックスデバイスでこれを実行できますか?または、9のグラフィックスデバイスを入手して、それを使用する必要がありますか?IDirect3D9DeviceとIDirect3D10Deviceの両方を同時に持つことさえ可能ですか?

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

directx - DirectX 9.0 でバックグラウンド モードでリソースをロードする

DirectX9.0 で 3D ゲームを作成しました。

スレッドを使用してバックグラウンド モードでリソースをロードしたい。

これが私のコードです。

----------------Attakc.h------------------------------------------

----------------Attakc.cpp------------------------------------------

...

....

その後、このプロジェクトを実行すると、E_OUTOFMEMORY エラーが表示されます。(D3DXCreateTextureFromFile)

スレッドの同期に関するものだと思います。

スレッドを使用してリソースをロードする経験はありません。

私を助けてください。