問題タブ [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.
directx - DirectDraw (2d) オーバーレイを使用した Direct3D 11
基本的に、3D スワップチェーンで 2D 描画を行いたいと考えています。しかし、私のコードは別のプログラムに挿入され、ソース コードはありません。
描画はできますが、スワップチェーンが DXGI_FORMAT_B8G8R8A8_UNORM (BGR) 形式で作成されている場合にのみ機能します。
もともと、プログラムは DXGI_FORMAT_R8G8B8A8_UNORM (RGB) を使用しており、BGR に切り替えると、プログラムはウィンドウ/画面の外側にレンダリングされます。ほとんどすべてが大きくなっています。
RGB を使用して Direct3D 11 を 2D と相互運用する方法、またはアプリケーションのレンダリングを BGR で正しく動作させる方法はありますか?
c++ - クラッシュの原因となる行列
Direct3D11 アプリケーションに奇妙な問題があり、既に数時間解決しようとしています。問題はその方法です:
その行に到達するまで、すべて問題ありません。
どういうわけか、それはアプリケーションのクラッシュを引き起こします (正しいと応答しないように切り替えます)。
実際の呼び出しは次のようになります。
事前に、Vertex シェーダーと Pixel シェーダーは正常にコンパイルされるため、問題はありません。ほとんどの場合、私は xnamath で何か間違ったことをしています (私はまったく新しいものです) が、地球上で何ができるのかわかりません。前もって感謝します。必要に応じて、さらに情報を提供します。
編集@1: 数十回の変更により、Projection および World マトリックスを機能させることができました。私はまだビューマトリックスを設定できませんが。コードを変更したので、実際のものと一致し、重要でないものを取り除きました。
編集@2: 直前の速報: XMMatrixLookAtLH 関数に問題はありません。結果をローカル変数に保存することにしたため、機能しますが、結果マトリックスをクラス メンバーに割り当てたい場合は、クラッシュが発生します。 . それは確かに興味深いです。
directx - Direct3D 11 はオフスクリーンのみのレンダリング (スワップ チェーンなし) を実行できますか?
Direct3D 11 を使用して、テクスチャのみにレンダリングすることはできますか?つまり、スワップ チェーンを作成せず、ウィンドウを作成せずにレンダリングすることはできますか? 私はそれを試しましたが、すべての API 呼び出しが成功しました。唯一の問題は、ステージング テクスチャからダウンロードしている画像が黒いことです。
最終的に、PIX を使用して完全なストリームをキャプチャすることができました (Parallel Nsight はまったく機能していないようです)。PIX は、私のレンダー ターゲットも黒であることを示していますが、青にクリアしています。
私がやろうとしていることはまったく可能ですか?もしそうなら、どのようにそれを行うでしょうか?
directx - Direct3D 11 が頂点をラスタライズしない
Direct3D 11 を使用して単純な三角形を画面に表示しようとしていますが、何も表示されません。ここに私の頂点があります:
予想される出力は、画面の左上隅に 1 点、画面の右上隅に 1 点、画面の左下隅に 1 点を持つ三角形です。ただし、どこにも何もレンダリングされていません。
マトリックス変換は一切実行しておらず、頂点シェーダーは入力を直接出力に渡すだけです。すべてが正しく設定されているようで、Visual Studio 2012 でグラフィックス デバッガーを使用すると、正しい頂点位置が頂点シェーダーに渡されます。ただし、パイプラインで頂点シェーダー ステージから出力マージ ステージに直接スキップします。これは、ピクセル シェーダーに何も送信されていないことを意味すると思います。これは、ベクトルがラスタライザー ステージで破棄されていることを意味します。なぜこうなった?
これが私のラスタライザの状態です:
そして、私のビューポート (幅/高さは、テスト セットアップで 1024x576 に設定されているバック バッファーに一致するウィンドウ クライアント領域です):
ラスタライズ ステージで頂点がドロップされている原因を特定できる人はいますか? または、これを引き起こしている可能性のある D3D セットアップの他の部分がありますか?
visual-c++ - 未処理の例外 @ ClearRenderTargetView()
そのため、「オンボード」の Windows SDK 8 で Visual Studio 2012 を使用し、Direct3D11 アプリケーションを作成していますが、大きな問題があります。D3D11 の上にすべての初期化、セットアップ、および描画呼び出しを処理するクラスがあります。D3D11 ドライバー クラスのインスタンスを適切に保持するアプリケーション クラスを、必要なすべてのデータと共にインスタンス化します。
D3D11 ドライバー クラス コンストラクターは、アプリケーションのプライマリ ウィンドウ ハンドルを取得し、それを使用して D3D をアプリケーションのプライマリ ウィンドウにフックします。それ自体を適切に構築しapp->run()
、メインループを駆動する呼び出し元を返します。
メイン ループでは、そのドライバーが呼び出され、空白の赤みを帯びた画面を単純にテスト描画します。デバッグ情報を観察すると、問題のレンダー ターゲットは操作可能であり、スワップ チェーンからパイプラインにバックバッファーをバインドするために作成されています。
renderTargetView
NULL ではありません。HRESULT は S_OK であることが検証されます。
D3D11 ドライバー クラス コンストラクター内で Draw 関数を呼び出そうとすると、機能します。呼び出しの間に割り当てが解除されることはありません。
Application クラスのコンストラクターが run() 関数の前に終了しないようです。数「フレーム」先に終了せずに続行しようとすると、クリアされたレンダー ターゲットの赤みがかった色合いが表示されます。誰か教えてください。私は知恵の果てにいます。
NULL ではありません。HRESULT は S_OK であることが検証されます。これは Windows 8 で修正されたという報告がありますが、Win7 SDK にはまだ問題があります。Google は有用なものを提供しません。ほとんどの人は、レンダリング ターゲット ビューを作成するのを忘れたり (NULL のまま)、OMGetRenderTargets の intellisense-miss OMSetRenderTargets を作成したりしません。
c++ - 3D バウンディング ボックスを作成するにはどうすればよいですか? (ダイレクト 3D 11、HLSL)
初めてダイレクト 3D を使用しています。バウンディング ボックス (長方形/円柱/球) を表現する方法を探しています。境界ボックスの輪郭を描くにはどうすればよいですか? これはシェーダーですか、それとも他のものを使用してアウトライン シェイプを作成しますか?
チェスター
c++ - D3D10コンスタントバッファーが機能しない
ピクセルシェーダーにデータを転送するために定数バッファーを使用しています
問題は、バッファに更新されるデータに関係なく、float4メンバーのx、y、z、およびwの実行時に、バッファにシェーダに0が含まれることです。
構造の定義は次のとおりです。
どんな助けでも大歓迎です
c++ - 3d モデルを Direct3D 11 にインポートする例
Direct3D 11 で WP8 アプリを構築しており、3dModel を読み込む必要があります。
XNAでロードする方法は知っていますが、XNAはWP8では有効ではありません:|
Direct3D 11 で 3D モデルを読み込む方法の例が必要です。
c++ - const メンバ関数から this->deviceContext->map() を呼び出せるのはなぜですか?
これが許可されている理由がわかりません:
UpdateTextureFromArray 関数を const にしましたが、そのメンバーに対して非 const 関数を呼び出すことはできますか?
この場合、関数に const というラベルを付けるのはスタイルが悪いのでしょうか?
編集:明確にするために、この const のような関数を持っている場合、社会に「嘘をついている」のですか? 完璧な世界では、このコードはコンパイルされませんよね?
windows-8 - メトロアプリケーションで3Dオブジェクトの半透明性を実現
私はWindowsStore(Metro Application)用の3Dプロジェクトに取り組んでおり、Visual Studio 2012 Express forWindows8とBlenderを使用して3Dオブジェクトを作成しています。(Visual Studio Starter Kitを使用して)3Dオブジェクトのfbxメッシュファイルをインポートしていますが、そのオブジェクトの一部を半透明(不透明度50%)にしたいです。3DオブジェクトでLambertシェーダーを使用して3つのpngテクスチャを試しましたが、次の結果が得られました。
1)不透明度:100%オブジェクトの外観:不透明
2)不透明度:0%オブジェクトの外観:透明
3)不透明度:50%オブジェクトの外観:不透明(100%と同じ)
半透明にしたいのですが、50%の不透明度のテクスチャを使用しても、欲しいものが得られません。私にいくつかの解決策を提案してください。
どんな助けでも大歓迎です。