問題タブ [directx-12]

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

c++ - DirectX 12 リソース バインディング

D3D12 でリソースをさまざまなシェーダー ステージにバインドするにはどうすればよいですか?

1 つの頂点シェーダーと 1 つのピクセルシェーダーの 2 つのシェーダーを作成しました。

頂点シェーダーは次のとおりです。

ピクセルシェーダーは次のとおりです。

関数を使用してこれら 2 つのシェーダーをコンパイルし、D3DCompileそれを反映してD3DReflect、シェーダーの説明で BoundResorces メンバーを調べると、両方とも $Params という定数バッファーがあり、それぞれ均一変数が含まれています。問題は、これらのバッファーの両方がスロット 0 にバインドされていることです。リソースをバインドするときは、リソースをリソース スロットにバインドできる ID3D12RootSignature インターフェイスを使用する必要があります。頂点シェーダーの $Params バッファーを頂点シェーダーのみにバインドし、ピクセル シェーダーの $Params バッファーをピクセル シェーダーのみにバインドするにはどうすればよいですか?

前もって感謝します、

フィリネーター

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

c++ - RSSetScissorRects が呼び出されると、イベントの WaitForSingleObject によってアクセス違反が発生する

WaitForSingleObject 関数により、次のエラーが発生します

DrawTexturedCube.exe の 0x00007FFA02794AD0 (d3d12warp.dll) でスローされる例外: 0xC0000005: アクセス違反の読み取り場所 0x0000000000000000

前のフレームが完了するのを待っている間。コードは、MSDN DirectX12 サンプル コード ( https://msdn.microsoft.com/en-us/library/windows/desktop/dn899189%28v=vs.85%29.aspx ) から取得されます。

このエラーは、4 つのテスト ケースのうちの 1 つでのみ発生します。ここで説明されているように構成されている paintEvent ループから次の関数への呼び出しを削除すると、アクセス違反は消えます (ただし、ビューポートにレンダリングされた画像も消えます) ( https://msdn.microsoft.com/de-de/ライブラリ/ウィンドウ/デスクトップ/dn903899%28v=vs.85%29.aspx )。

私は VS2015 を使用していますが、デバッガーはすべてのテスト ケースで fenceEvent_ 変数を NULL として表示せず、逆アセンブリで ?? と表示されます。?? すべてのテストケースでハンドルが指すメモリ。私のシェーダーはジオメトリ シェーダーを使用しません。

だから今私は2つの質問があります:

  1. ほぼ同一の 4 つのテスト ケースのうち 1 つだけで、WaitForSingleObject 関数によってアクセス違反が発生するのはなぜですか?
  2. RSSetScissorRects 関数と WaitForSingleObject 関数は互いにどのように関連していますか?
0 投票する
1 に答える
1082 参照

visual-c++ - Directx12 長方形を描く

こんにちは、directx12 の勉強を始めました。以前のバージョンに関する知識はありません。

三角形をレンダリングするこのサンプルプログラムHelloWorldTriangleに従っています。長方形を描きたいので、

私が変更され

しかし、それでも角度の異なる三角形を描画します..長方形を得るために何を変更しなければならないかを説明してください。

directx12を始めるためのリンクや本をいくつか教えていただければ、本当に助かります..

前もって感謝します ..

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

c++ - Direct3DCreate9(D3D_SDK_VERSION) に相当する D3D12 は何ですか?

私は現在 D3D12 エンジンをコーディングしていますが、この D3D9 関数に相当する D3D12 は何ですか?

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

directx-12 - DirectX12 フレーム リソース

私は現在、UI が必要なプロジェクトに取り組んでいます。UI Manager クラスを作成し、その中で適切なジオメトリ、シェーダー、レイアウトを作成し、メイン クラス内でこの Manager クラスの update と Draw を呼び出すことができます。

私の質問は、Frank Luna の本に従います。フレーム リソースはメイン クラス内に作成され、すべてのアイテムとすべてのマテリアルが保持されます。明らかに、UI マネージャー クラスですべてを処理したいので、別のフレーム リソースが必要ですか? update を呼び出す UI Manager クラス、または作成したすべてのアイテムをメイン クラスに戻してそのフレーム リソースに追加する必要がありますか?

うまくいけばこれは理にかなっていますが、必要に応じて、私が何を意味するのかを説明するコードを示すことができます

ありがとう

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

directx-12 - D3D12 の SetGraphicsRootSignature のポイントは何ですか?

ID3D12GraphicsCommandList::SetGraphicsRootSignatureメソッドの存在について少し混乱しています。この MSDN pageについて私が理解していることからSetPipelineState、パイプライン状態オブジェクトの作成時に提供されたのと同じルート署名を与えて、常に の後に呼び出すことが唯一の有効な使用法のようです。もしそうなら、それが暗黙的でないことにどんな利点があるのですか? この方法を使用する他の方法はありますか?