問題タブ [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.
c++ - D3DImage 経由の WPF と DirectX 11
アンマネージ C++ コードから DirectX 11 を使用し、GUI に WFP を使用したいと考えています。SlimDX は私には適していません。DirectX 10でWPFを機能させるための解決策を見つけました:
しかし、私は DirectX 11 でそれを動作させることができませんでした。2 つのボタンがある空白の画面だけです。WPF を DirectX 11 で動作させる方法を知っている人はいますか?
また、この例を実行しているとき、Intel i5 750 (Windows 7 64 ビット、NVidia Geforce 430) の CPU 使用率が約 4 ~ 5% であることも確認しました。多すぎると思います..CPU使用率を下げることはできますか?
ここで私のコードを見つけることができます: http://www.gamedev.net/topic/619534-wpf-directx-11-via-d3dimage/
directx - ディスプレイ ドライバが DirectX をサポートしているかどうかを確認するにはどうすればよいですか?
使用しているディスプレイ ドライバーが DirectX 11 をサポートしているかどうかを知りたいですか? ディスプレイ ドライバの機能を知るにはどうすればよいですか? 特に、シェーディング言語をサポートしているかどうかはどうすればわかりますか?
directx-9 - DirectX11の機能レベル
DirectX 11を使用するプログラムを作成しました。デバイスを作成するときは、機能レベル9.0c(具体的には、D3D_FEATURE_LEVEL_9_3)を使用します。
機能レベルについての私の最初の理解は、1つを選択すると、プログラムがグラフィックカードと互換性を持つようになり、DirectXの新しいバージョンをサポートしないということです。
私の知る限り、DirectX11はWindowsVistaにインストールされていない可能性があります(少なくとも公式にはインストールされていません)が、すべてのグラフィックス機能がWindows Vistaで魅力的なように機能したとき、私がどれほど驚いたか想像してみてください。
問題は、なぜですか?どのように?DirectX 11は非常にスマートなので、11個のバイナリが利用できない場合でもDirectX 9バイナリを使用しますか?それはおそらくDirectX10の機能ですか?たぶんMicrosoftはDirectX11のVistaサポートを有効にしましたか?それには何かがあるに違いない、私はそのような偶然の一致を信じていない...
MSDNはこの問題について沈黙しています。または、少なくとも適切なトピックが見つかりませんでした。
これについて何か説明はありますか?
c++ - directX 11 の初期化中に未処理の例外エラーが発生しました
初期化して directX 11 を実行しようとすると、次のエラーが表示されます。
エラー:
もちろん構文エラーはありません。OS: Windows 7 プレミアム 64 ビット。DirectX のバージョン: 11 (まあまあ!) IDE: Visual Studio 2010 (VC++)
コード:
「d3dclass.h」
「d3dclass.cpp」
少し更新: 私は、graphics.cpp と呼ばれる別のファイルから宣言された m_D3D と呼ばれる変数 (ポインター) を持っています。すべての変数を 0 (NULL) に初期化するために D3DClass でコンストラクターが呼び出されると、エラーが発生します。このポインターで m_D3D の値を確認すると、次のメッセージが見つかりました。
m_D3D CXX0017: エラー: シンボル "" が見つかりません
お知らせ下さい。
乾杯
slimdx - テクスチャをシェーダー(DirectX11 / SlimDX)にロードするにはどうすればよいですか?
Texture2Dをすぐに利用できます。そのTexture2Dを入れることができる、明らかに機能しているシェーダーテクスチャサンプラーとシェーダーテクスチャ変数があります。
唯一の問題は、DirectX11のシェーダーにテクスチャをロードする方法がわからないことです。Googleが役に立たないか、適切な検索用語を作成できないだけです。
必要なもの:Texture2Dを取得してシェーダーにロードするコード。たとえば、その方法に関するリンク。
とにかく、これが私のシェーダーコードです:
ありがとう。
constants - DirectX11はシェーダー定数を設定します
XNAのバックグラウンドを持って、私は単純なDirectX11アプリケーションを作成しようとしています。ここで、射影行列などのシェーダー定数を設定する方法を理解しようとしています。定数バッファーについて読んでいますが、バッファーを使用せずに、レンダリング前にいくつかの定数を設定する簡単な方法はありませんか?
directx-11 - DirectX11 で RenderState を設定するには?
DirectX11 で renderState を設定するにはどうすればよいですか?
device->SetRenderState() はもう存在しないようです。
visual-studio-2010 - VisualStudio 2010-シェーダーコードをステップスルーしますか?
VisualStudio2010のDirectX11アプリケーションで、デバッグ中にシェーダーコードをステップスルーすることは可能ですか?特に参照デバイスを使用する場合は、シェーダーコードがソフトウェアで実行されます。そうすれば、デバッガーを使って実際にステップスルーできるはずですよね?
nvidia(並列nsights)とamd(gpu perfstudio)の高度なツールを見ましたが、それらは非常に複雑に見えます。
パフォーマンスは気にせず、シェーダーコードのバグを見つけようとします。
c++ - IDXGISwapChain::SetFullscreenState が全画面表示にならないのはなぜですか?
ゲームで DX11 を使用していますが、確実にフルスクリーンでゲームを開始できるようにしたいと考えています。これは、スワップ チェーンの説明でフルスクリーンを指定するか、ウィンドウ表示を開始してすぐにフルスクリーンに切り替えるかの 2 つの方法のいずれかを実行できることを意味します。MSDN ( http://msdn.microsoft.com/en-us/library/windows/desktop/bb174537(v=vs.85).aspx ) によると、ウィンドウ モードでスワップ チェーンを作成してから、全画面表示に切り替える必要があります。フルスクリーンモードで開始したい場合は、まさに私がやっていることです。
問題は次のとおりです。 を呼び出すと、呼び出しが失敗し、エラー コードIDXGISwapChain::SetFullscreenState(TRUE, NULL)
が返されます。 DXGI_ERROR_NOT_CURRENTLY_AVAILABLE
MSDN によると、これが発生する理由は次のとおりです。
- アプリケーションはターミナル サーバー上で実行されています。
- 出力ウィンドウが遮られています。
- 出力ウィンドウにキーボード フォーカスがありません。
- 別のアプリケーションが既にフルスクリーン モードになっています。
最初のケースは正しくありません。リモート デバッガーで Visual Studio 2010 を使い果たしたので、リモート デバッガーがターミナル サーバーを使用しない限り、それで問題ありません。2 番目のケースも当てはまりません。デスクトップには他のウィンドウはありません。4 番目のケースも当てはまりません。繰り返しますが、デスクトップには他のウィンドウはありません。
これにより、3 番目のオプションが残ります。キーボード フォーカス。オンラインで収集したものから、DX11 グラフィックス デバイスを作成する前にキーボード フォーカスを取得するために、このコードを作成しました。
この呼び出しは成功しますが、まだ全画面表示にはなりません。私もこれに代わるものを見つけることができませんでした。ただし、キーボード フォーカスを確実に盗むことができることはわかっています。Windows が常にそれを行っているのを見て、他のアプリがそれを行っているのを見てきました。
だから私の質問はこれです:どうすれば確実に全画面表示にできますか? または、アプリのキーボード フォーカスを確実に取得するにはどうすればよいですか?
編集:これを数回読んだ後、いくつかの重要な情報を見逃していることに気付きました. .exe をダブルクリックして直接使用するか、ターゲット マシンのスタートアップ メニューに配置すると、アプリケーションは常にフルスクリーンで正しく起動します (ただし、Windows ファイアウォール メッセージではフルスクリーンにできませんが、私はしません)。それが機能する必要があります)。唯一の問題は、アプリが別のアプリによって開始された場合、または Visual Studio リモート デバッガーを使用して開始された場合です。
directx - BC5_SNORM テクスチャをサンプリングすると、値の範囲が正しくない
私は Direct3d 11 を使用していますが、奇妙なことに遭遇しました。法線マップを取得し、それを DDS ファイルに 2 回エンコードしました。1 回はR8G8B8A8_SNORMエンコーディングで、もう 1 回はBC5_SNORMで。
次に、 D3DX11GetImageInfoFromFileと組み合わせてD3DX11CreateShaderResourceViewFromFileを使用して、各テクスチャを読み込みます。ピクセル シェーダーでこれらのテクスチャをサンプリングすると、R8G8B8A8_SNORMテクスチャが [-1,1] の範囲の値を返していることがわかりました。これは、SNORM テクスチャに期待する値です。ただし、BC5_SNORMテクスチャは [0,1] の範囲の値を返しますが、これは私には意味がありません。
デバッガーと PIX でチェックしたトリプルを 2 倍にします。テクスチャの形式は正しい ( BC5_*S*NORM ) ため、符号付きの値が返されない理由がわかりません。