問題タブ [directx-11]
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.
directx - DirectX デモは画面に何も描画しません
私は現在 DirectX 11 を学んでおり、本「Beginning DirectX 11 programming」のデモの 1 つを試していました。本のガイドラインに従って、ウィンドウの作成と破棄 (d3d11 セットアップを含む) を処理する基本クラスを作成しました。他のすべてのデモは、このクラスに基づいています。そこで、2D 三角形を描くことを目的とした Triangle デモを作成しました。Triangle クラスの実装は次のとおりです。
これを実行すると、画面がクリアされ、指定した色になりますが、画面には何も描画されません。本で提供されているソースコードをコンパイルしただけで、問題なく動作することを確認してください. 使用するシェーダーも同じです。私のコンピューターは directx 11 をサポートしています。ほとんどの名前は一目瞭然だと思いますが、わかりにくい場合は私に尋ねてください。フレームワークを他のデモでテストしましたが、正常に動作します。コードでエラーが見つからないようです。
c++ - エラー: ID3D11Texture2D が定義されていません。
d3d11.h ヘッダーをインクルードしましたが、この型のポインターを宣言すると:
ID3D11Texture2D が定義されていないと表示されます。
では、どうすれば問題を解決できますか?
c++ - PIX DirectX 11 デバッグ ピクセル エラー
最近、デュアル モニター、デュアル ウィンドウのサポート用に DirectX 11 (C++) アプリケーションを更新しました。それ以来、PIX デバッガーでピクセルをデバッグしようとすると、次のエラーが発生します。
D3D11CreateDeviceAndSwapChain を使用しなくなりましたが、代わりに D3D11CreateDevice を使用してから CreateSwapChain を使用して、2 つのウィンドウ (モニターごとに 1 つ) のそれぞれに個別のスワップ チェーンを作成します。変更を行う際は、SDK サンプルの MultiMon10 を参照として使用しましたが、PIX を介して MultiMon10 サンプル プロジェクトを実行すると、エラーなくピクセルをデバッグできます。したがって、単に「CreateSwapChain」が PIX に適していないという問題ではありません。
このエラーの原因は何ですか? ピクセルのデバッグとシェーダーのステップ実行は、過去に私を大いに助けてくれました。その能力を失いたくありません。
c# - C# で DirectX11 と SlimDX を使用した Nvidia 3d ビデオ
こんにちは、nvidia 3DVision と 2 台の IP カメラを使用して、リアルタイム ステレオ ビデオを表示しようとしています。私は DirectX をまったく初めて使用しますが、このサイトや他のサイトでいくつかのチュートリアルやその他の質問に取り組んでみました。今のところ、左目用と右目用の 2 つの静的ビットマップを表示しています。これらは、プログラムのこの部分が機能するようになると、カメラからのビットマップに置き換えられます。この質問NV_STEREO_IMAGE_SIGNATURE と DirectX 10/11 (nVidia 3D Vision)はかなり役に立ちましたが、プログラムを正常に動作させるのにまだ苦労しています。私が見つけたのは、シャッターメガネが正常に機能し始めたのですが、右目の画像のみが表示され、左目は空白のままです (マウスカーソルを除く)。
ステレオ画像を生成するための私のコードは次のとおりです。
}
署名 (3840x1081) を含むステレオ画像の Texture2D をバックバッファーにコピーするさまざまな方法を試しましたが、両方の画像を表示しようとした方法はありません...ヘルプやコメントは大歓迎です、Ryan
c++ - DirectX11 メッシュの読み込み - テクスチャによるエラー (SDKmesh.h を使用)? アクセス違反読み取り場所 0x00000000
DirectX 11 アプリケーションでファイルからメッシュをロードしようとしていました。ベースとして、私は自分のコード(現在いくつかのプリミティブをレンダリングしています)を取り、DirectX 11 SDKサンプル(SDKmesh.hとDXUT.hなどを使用)の「基本的なHLSL」プロジェクトからメッシュを作成/レンダリングするコードをそれに追加したかったのです。サンプルから。
メッシュコードは次のとおりです。
また、サンプルでは異なる頂点レイアウトがあったことに気付きました。そのため、シェーダーのクラス コードを次のように変更しました (コードは、メッシュを作成する前に、シェーダーのクラス コンストラクターで 1 回実行されます)。
コンパイルは機能します。しかし、コードの実行中にエラーが発生します:
SDKmish.h の近く:
正確には次のとおりです。
その関数の数行とコード内の何かにコメントすると (それが何行だったか思い出せません)、ウィンドウにメッシュが表示されますが、テクスチャは表示されません。それで、テクスチャのあるものだと思いますか?私は適切なフォルダに小さなモデルとテクスチャを持っています。また、上に投稿したように頂点レイアウトも設定しました。
他に何をすべきですか?
windows - 最初のフレームのみを示す DX11 スワップ チェーン。それと黒い画像の間で反転します
3D シーンを実行すると、最初のフレームのみがレンダリングされ、その後、そのフレームと黒い画面が交互に表示されるため、多くのちらつきが発生します。正しく設定されていないのは私のスワップ チェーンだと思いますが、よくわかりません。
ここにそれを設定するための私のコードがあります。これは、Microsoft の例からほとんどコピーされています。
そして現在のコード:
私にはかなり簡単に思えるので、なぜそれが機能しないのか本当にわかりません。
シーンは常に実行されています。update 関数はフレームごとに実行されます。
また、PIX でレンダリングを確認すると、すべて問題ありません。レンダリングに期待するものを取得します。画面に映らないだけです。
何か案は?ありがとう!
c++ - direct x 11 インテリジェントに頂点バッファーを作成する
私にはちょっとした難問があり、それが私を困惑させています。次のような頂点タイプがすべて異なるシェーダーがいくつかあるとします。
ここで、このすべてのデータが利用可能なモデルがあるとします。データがすべてのデータに対して正しくレイアウトされていないため、すべてを同じバッファーに入れ、選択した 3 つすべてでレンダリングすることは正確にはできません。これを可能にするオプションは 2 つしかありませんが、どちらも同じように苦痛です。
1) RAM にすべてのデータを保持する大きなバッファーを用意し、すべての描画呼び出しで、シェーダー オブジェクトから頂点の種類を取得し、正しい情報で新しい頂点バッファーを作成します。ご覧のとおり、これは恐ろしく遅くなります。
また...
2) モデルの初期化時に複数の ID3D11Buffers を作成できます。1 つのバッファーには位置と色があり、1 つには位置、texcoord、および法線があり、1 つには位置、texcoord、法線、従法線、および接線があり、必要な数のバッファーもあります。モデルが情報を持っているその他の頂点タイプの場合。比較すると、これは利用可能な vram を消去し、これもノーゴにします。
これを行う他の方法は見当たりません。他の d3d 関係者はこれをどのように行っていますか?
c++ - C++ で空のウィンドウに情報を書き込む
だから私はこのゲームエンジンを構築していますが、D3D11を使用してメインゲームウィンドウにデバッグ情報を含むある種のオーバーレイを作成したり、テキストをまったく描画したりするのは非常に難しいことがわかったので、別のウィンドウを作成すると思いました私のデバッグデータを含めるために。
ウィンドウは正常に作成されましたが、デバッグ情報をウィンドウに書き込む方法がわかりません。プロジェクトを望ましくないCLRプロジェクトに変換する必要があるため、Windowsフォームデザイナーを使用したくありません。
私は少なくとも3時間(正直に)グーグルで検索しており、さまざまな解決策を試しましたが、実際に使用するのに実用的なものはありませんでした/機能していませんでした.
書きたいデバッグ情報は、グローバルな float 値に由来します。例としてはCAM_POS_X
、カメラが現在どの X 座標にあるかを示す浮動小数点値を保持するものがあります。
このようなものが望まれます:
|SiriusAlpha 0.1 デバッグ ウィンドウ_ |
|現在の X 位置: CAM_POS_X
|
|現在の Y 位置: CAM_POS_Y
|
|現在の Z 位置: CAM_POS_Z
|
|現在のヨー: CAM_YAW
_ _ _ __ |
|現在のピッチ: CAM_PITCH
_ __| |
|現在の FPS:CUR_FPS
__ _ ____ |
これらの値はすべて、必ずしも浮動小数点変数ではありません。それらは、文字列、倍精度浮動小数点数、整数、さらにはブール値である可能性があります。
D3D11 でこれを行う方法を誰かが喜んで説明してくれ、デバッグ ウィンドウのスケネンニガン全体をスキップできれば、さらにうれしいです。
それ以外の場合は、誰かがこれがどのように行われるかを説明していただければ幸いです。
gpgpu - Crossfire /SLIはComputeShaderのパフォーマンスにメリットがありますか?
DX11コンピューティングシェーダーを掘り下げています。そして、Crossfire / SLIでビデオカードをもう1枚追加すると、パフォーマンスが向上するのではないかと思います。または、Crossfire/SLIを使用せずにビデオカードをもう1枚追加します。
誰かがこれを試しましたか?