問題タブ [direct3d11]

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

windows - フルスクリーンの d3d11 alt-tab が奇妙な結果をもたらす

まず、4 時間のデバッグの後、コードに問題はありません。しかし、なぜ私が抱えていた問題があったのか不思議です。

d3d11 レンダリングでフルスクリーン ウィンドウを作成しました。ウィンドウを alt-tab しようとしたときに、ループにPresent() がなかったときに問題が発生しました(レンダリング機能を実装する前にこの問題を見つけただけです)。その場合、ウィンドウを最小化した後、画面上の赤と青のチャンネルが入れ替わっていました (はい、文字通り)。

スワップチェーンまたはウィンドウ自体(sdl)を疑ったため、見つけるのに時間がかかりました。教育目的で、このバグの理由を見つけるのを手伝ってもらえますか?

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

gpgpu - GPU と決定論

いくつかの数学演算を GPU にオフロードすることを考えていました。私はすでに D3D11 を使用しているので、計算シェーダーを使用して作業を行います。しかし、問題は、ユーザーがどの GPU を使用していても、同じ入力に対して結果が同じである必要があるということです。(計算シェーダー 4.0 をサポートするという要件のみ)。

では、浮動小数点演算は GPU で決定論的ですか?

そうでない場合、GPU は整数演算をサポートしていますか?

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

c++ - SampleDesc.Count > 1 の場合、最終的な COM リリースで Direct3D11 DEBUG MODE がクラッシュする

*** FML: それは FRAPS でした。DX画面録画ソフトを停止したところ動作しました。これを理解するのに役立つ共同テストを行ってくれた@zddに感謝します。***

注意: FRAPS + D3D11_CREATE_DEVICE_DEBUG +SampleDesc.Count > 1混ぜないでください。

私はDXに本当に慣れていません... 1週間前のように。しかし、私の限られた専門用語と理解でも、この問題は非常に簡単に説明できます。DEBUG貴重なフィードバックが得られるので、レイヤーをオンのままにしています。しかし、それは私が克服できない問題を引き起こします。私は髪の毛を一本一本引っ張るのに1日を費やしました.

問題

D3D11デバイスを作成する場合:

->Release()...それがどのオブジェクトであっても、最終的にクラッシュします。まったく同じDAMN コード:

... COM 参照をスムーズにクリーンアップします。どちらのバリアントもフラグなしで正常に動作することは言うまでもありません。ReleaseDEBUG

では、Outputという不可解なエラーが表示されますlive children without parents。しかし、COM ラッパーで使用する COM オブジェクトは 5 つしかありません。

そこで、COM ラッパーを削除し、それぞれに対して手動で->Release()and= nullptrを実行しました。IMO、誤って何かをリリースすることは不可能です。そして最後->Release()に、ブレークポイントに到達したと表示されます。

それで... 他の誰かがそのような行動に遭遇しましたか? 他の誰かが同じことを経験しない限り、答えを得ることはできないと思います。それはとても奇妙です...

コード

ヘルプ!

ロジックをよりよく説明するためにコードにコメントしてほしい場合は、そうします。質問とコードを明確に説明していることに言及するコメントを受け取ります...多分私は十分に明確ではありません。

最終的な考え

おそらく、私が呼び出していない特定のオブジェクトの内部にある種のリリース機能があるのでしょう。たぶん、私は何か間違ったことをしている、または本当に間違っている. しかし、私は評判の良いウェブサイトからこれを手に入れました。そして、それHello DirectX!は私が現在夢中になっている本のコードと一致します。

このスニペットは必要最小限に抑えられています。これは、問題を特定しようとしているときに、より複雑なもののトリミングされたバージョンです。さらに、すべての OOP を削除して、簡単に理解できる 1 つのコード ブロックにまとめました。

最後の質問があります。この方法以外に線を滑らかにする方法はありSampleDescますか?

PS : Windows 7 x64、VS 2013 + 2014 CTP です。また、カードは、デバッグ モードとリリース モードの両方で動作する (エッジが滑らかである) ため、それをサポートします。デバッグ モードで失敗するのは最終リリースのみです。

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

directx - 配列を引数として HLSL 頂点シェーダーに渡しますか?

Direct3D の引数として頂点シェーダーに配列を渡す必要があります。シェーダー関数のシグネチャは次のようになります。

サインはOK?入力レイアウトの説明を定義するにはどうすればよいですか?

前もって感謝します。

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

direct3d - Direct3D 11 が SRV と UAV を区別するのはなぜですか?

私は Direct3D 11 で遊んでいましたが、HLSLStructuredBuffer<T>は Shader Resource View (SRV)RWStructuredBuffer<T>にバインドする必要があるのに対し、Uniform Access View (UAV) にバインドする必要があることを発見して驚きました。これを詳しく調べてみると、すべての読み取り/書き込みシェーダー リソースには UAV が必要であるのに対し、読み取り専用リソースには SRV が必要なようです。

UNORDERED_ACCESS_VIEW_DESC構造とSHADER_RESOURCE_VIEW_DESC構造を比較すると、UAV は、SRV を記述するための情報のサブセットで記述されます。UAV と SRV をパイプライン ステージに設定する API も非常に似ています。2 つのインターフェースのドキュメントでさえ、2 人の異なるテクニカル ライターによって説明されている同じ概念のように見えます。

  • SRV: シェーダー リソース ビュー インターフェイスは、レンダリング中にシェーダーがアクセスできるサブリソースを指定します。
  • UAV: ビュー インターフェイスは、レンダリング中にパイプラインがアクセスできるリソースの部分を指定します。

私は D3D11 に精通しているわけではありませんが、UAV の概念が API を複雑にし、あまりメリットがないように思えます。SRV と UAV の違いは、ハードウェアへのマッピングを改善するためですか、それとも技術的な制限のためですか? それとも、単に API の設計上の決定でしたか?

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

c++ - D3D11_INPUT_ELEMENT_DESC: 要素の種類/順序/パッキング

D3D11_INPUT_ELEMENT_DESC 構造体の要素の型や順序に関連する懸念事項 (パフォーマンスなど) はありますか? たとえば、次のように定義された入力レイアウトがあります。

TEXID要素がここUINTではなく型であることは重要FLOATですか? 4 つのコンポーネントのベクトル構造体 (float4) に対する「アライメント」が優先されます。R32G32B32A32_FLOATレイアウトの最初にすべての をまとめて「パック」する必要がありますか? 何かパッドが入っていますか?

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

c++ - 3DTexture ベースのボリューム レンダリング

私は、一連の 2D 画像をすべて同じサイズで生データとしてフォーマットし、3D テクスチャにロードしてから、その 3D テクスチャを画面にレンダリングしようとしました。私はまだ DirectX に慣れていないので、何が間違っているのかわかりません。関連するコードは次のとおりです。

シェーダー コードは可能な限り単純です。

これが適切に機能するためには、ある種のアルファ ブレンディングを実装する必要があることはわかっていますが、少なくともこれで示されている画像の最初のスライスを取得したいと考えていました。ただし、取得できるのは、Render 関数で設定した背景色だけです。

私が間違っている可能性があることについてのヘルプと、この目標を達成するために必要なその他のヒント (一連の画像から 3D テクスチャを作成して画面にレンダリングする) は、非常に役立ちます。これに関するウェブ上のドキュメントはほとんどありません。

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

windows-phone-8 - DirectX 11 に相当する glPointSize

ポイント(D3D11_PRIMITIVE_TOPOLOGY_POINTLIST)で構成されたスターフィールドをレンダリングしています。ポイントがカメラに近づくと、サイズが 2 倍になります。これは、glPointSize(2.0f) を使用して OpenGL 1.x でうまく機能しました。Windows Phone 8 の DirectX 11 でこれを実現する方法はありますか? 私が必要としているのは、カスタム値でレンダリングされたポイントを大きく見せる方法です。

どんな考えでも大歓迎です。