問題タブ [direct3d10]

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

directx - DX10 スカイボックス シェーダー

次の HLSL コードを使用して、DX10 でスカイボックス シェーダーを作成しようとしています。

「dx9互換モードでない場合、DX-9スタイルの組み込み関数は無効になっています」というエラーが表示されます。46行目:

texCUBE に代わるものはありますか? dx9 互換モードを有効にせずにこれを修正するにはどうすればよいですか?

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

directx - 最初のメッシュの後に深度情報がありません

Direct3D10アプリにSlimDXを使用しています。アプリでは、2つ以上のメッシュをロードし、画像をテクスチャとしてロードし、シェーダーにfxコードを使用しました。コードはSlimDXのサンプル「SimpleModel10」から変更されました

ドローコール、シェーダーセットアップコードを、1メッシュ、シェーダー(エフェクト)、ドローコールを管理するクラスに移動します。次に、このクラスの2つのコピーを初期化してから、draw関数を次々に呼び出します。

メッシュのZ位置をどのように変更しても、後で描画される出力は常に一番上に残ります。後で、PIXを使用して描画呼び出しをデバッグすると、最初のメッシュには奥行きがありますが、2番目のメッシュには奥行きがないことがわかりました。私は3つのメッシュで試しましたが、2番目と3番目のメッシュにも奥行きがありません。面白いのは、同じドローコールを使用して、同じクラスからすべてがインスタンス化されることです。

何がそのような問題を引き起こした可能性がありますか?

以下は、クラスの描画関数のコードの一部です。いくつかのクラスが長いため、残りは省略しました。サンプルの既存のOnRenderBegin()とOnRenderEnd()を保持します。

編集:多くのデバッグとコードの分離の後、私は犯人がFont.Draw()私のDrawString()関数にあることを知りました

Font.Drawをコメントアウトして問題を解決します。たぶんそれは自動的にいくつかの状態を設定し、次のメッシュ描画が深さを破棄する原因になります。SlimDXのソースコードを今調べています。

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

c++ - DirectX 10 デバイスとスワップ チェーンの作成に関する問題

D3D10CreateDeviceAndSwapChain を使用して有効な DirectX 10 デバイスとスワップ チェーンを作成する際に問題が発生しています。提供された SwapChainDesc の OutputWindow が使用されていないと言われているので、何かがうまくいかないのは私のウィンドウの作成であると思います=??? (またはランダムな int 値)

プロジェクトコードの何が問題なのかわからないように見えるので、この問題は私にストレスを与えてきました

CDirect3D.cpp の 193 行目で失敗することがわかっています。

誰かがコードを見てくれたら、とても感謝しています。プロジェクトとそのソースをhttp://dl.dropbox.com/u/3605545/files/LearningEngine.zipにアップロードしました

(巨大なコードベースではなく、これまでのところ 4 つのクラスのみ)

プロジェクトは VS2010 で、2010 年 6 月から DirectX SDK を使用しました。

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

com - Ref-counted COM オブジェクト (リリースなしの Addref) でのメモリ リークの検出

Direct3D 10 アプリケーションを作成していて、COM オブジェクトがリークしていないことを確認したいと考えています。

はい、インターフェイスを CComPtr でラップしていますが、RAII とスマート ポインターがリークがないことを保証しているにもかかわらず、通常のヒープ割り当てリーク検出器を使用しているのと同じ理由で、とにかくリーク チェックが必要です。 Direct3D のような C ライブラリに) より低いレベルの抽象化にフォールバックし、生のポインター、新規、削除を使用する必要があり、間違いを犯します。(言うまでもなく、Release() の一部の呼び出しは、プログラムの最後に 0 を返しません)

atlbase.h をインクルードする前に _ATL_DEBUG_INTERFACES を #define しましたが、出力ウィンドウに何も表示されません! _ATL_DEBUG_INTERFACES を機能させるために他に必要なことはありますか?

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

textures - d3d10 texture2d から MipMap サーフェスのリストを取得する方法

D3D10 には、1 つのミップマップ レベルを持つ Texture2D から単一のサーフェスを取得するために使用できるメソッドがあります。

しかし、これは複数のミップマップを持つテクスチャでは機能しません。では、どうすればミップマップ チェーンからすべてのサーフェスを取得できますか??

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

c++ - ID3D10Device::RSSetState はフレームごとに呼び出されますか?

direct3D10 で ID3D10RasterizerState を作成しようとしています。

適切な情報とともに。ただし、ウィンドウが再スケーリングされるたびに、またはアプリがフルスクリーンになると、ラスタライザーの状態がデフォルトの状態にリセットされるようです。WM_SIZE メッセージで状態を設定しようとしましたが、厄介なことに、何も起こらないようです...

フレームごとに RSSetState() を呼び出すと正しく動作しますが、非常に非効率的です。

誰もこれに対する解決策を知っていますか? msdn のドキュメントが不十分なようです。

コード:


WndProc:

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

c++ - 投影用の D3DX ベクトル演算機能?

ある D3DXVECTOR3 から別の D3DXVECTOR3 への射影を計算する D3DX10 vector3 数学関数はありますか?

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

layout - Direct3D 10、入力レイアウトの作成に失敗しました

direct3D 10 で Vertex Layout を作成しようとすると、アプリケーションのコンパイルに失敗し続けます。コードは次のとおりです。

で失敗します。このような問題をキャッチし、これらの場合に提案を行うことを意図しCreateInputLayout()ているという印象も受けましたが、HR()そうではないようです。多くの場合と同様に、私はそれについて完全に間違っているかもしれません. 表示されるプロンプトは次のとおりです。

CourseworkApp.exe の 0x757fd36f で未処理の例外: 0x0000087A: 0x87a。

これは主にポインターのエラーに関連していると思いますが、よくわかりません。どんな助けでも大歓迎です。

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

c++ - 奇妙なアクセス違反エラー

(私にとっては) 奇妙な実行時アクセス違反エラーが発生します。別のクラス Crosshair のインスタンスへの生のポインターを含むクラス GUI があります。しかし、そのポインターにアクセスしようとすると、実行時エラーが発生します。ポインターへのアクセスについて話しているのですが、エラーを取得するために逆参照する必要さえありません。

エラーは次のとおりです。

エラーは次の行に返されint a = (int)m_pCrosshair; ますGUI::Draw()


編集:

問題が見つかりました。関係のないコードをできるだけ隠そうとしながら、皆さんから隠していたコードで発生しました...問題は次のとおりです。

純粋な愚かさ、つまり…申し訳ありません!私はそのメソッドの最初の部分を書いていなかったので、自分のものを初期化するときにこれを使用したことがないので、戻り値を認識していませんでした...


年:

コード:

Crosshair.h


Crosshair.cpp


GUI.h


GUI.cpp

エラーは次の行に戻ります。int a = (int)m_pCrosshair;

この行を削除すると: m_pCrosshair->Draw(info.pDevice, info.clientWidth,info.clientHeight);

エラーあり: Unhandled exception at 0x001fc49a in GPEngine.exe: 0xC0000005: Access violation reading location 0x00000004


アプリケーションで GUI のインスタンスをインスタンス化する方法は次のとおりです。

(なぜ私が InitGame() メソッドを持っているのか聞かないでください。私たちは教師を喜ばせるためにこれをしなければなりません [笑])

最後に、WinMain:


誰が問題の原因を教えてもらえますか? 万が一、さらにコードが必要な場合は、コメントで質問してください:)

ありがとう

0 投票する
0 に答える
260 参照

c++ - すべてのDirectXSDKベースのアプリケーションの実行速度が遅い

どこからともなく、私が実行するすべてのDirectXアプリケーションプロジェクトは4 fpsしか与えず、なぜこれが起こっているのかわかりません...?すべてのサンプル、Webサイトからのチュートリアル、基本的なDirectXプログラム(単一のプロジェクトでデバイスを初期化するなど)では、同じ結果が得られます。

私はまだ正常に小売ゲームをプレイできますが、directxsdkを使用してビジュアルスタジオから実行したものはすべて異常に実行されます。

私はW764ビット、最新のグラフィックスドライバーを備えたGTX460m(DX11)、DX SDK(2010年6月)、8 GBのRAM、i7CPUで実行しています......

誰かが助けてくれるなら、私はとても感謝しています。