問題タブ [d3dimage]
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.
wpf - 遅いハードウェアでの D3DImage と SharpDX のちらつき
私はWPF機能にSharpDX.WPFプロジェクトを使用しています.SharpDXに付属のツールキット(同じ問題があります!)と比較して、オーバーヘッドの低いライブラリを理解しやすいようです。
最初: 次を使用して、最新の SharpDX の SharpDX.WPF プロジェクトを修正しました: https://stackoverflow.com/a/19791534/442833
次に、ここでも行われたソリューションである DXElement.cs に次のハッキーな調整を行いました。
次に、立方体パターンで 8000 個の立方体をレンダリングします...
降伏中...
コンソールに頻繁に出力されますが、ちらつきはまだあります。WPF は、レンダリングが完了する前に別のスレッドを使用して画像を表示するのに十分であると想定していますが、確かではありません... SharpDX で WPF サポートの Toolkit バリアントを使用する場合にも、同じ問題が発生します。
問題を示す画像:
注: これらの古いイメージをランダムに、ランダムに切り替えます。また、非常に古いハードウェアを使用しているため、ちらつきがより目立ちます (GeForce Quadro FX 1700)。
この問題を解決するために使用しているものとまったく同じソースコードを含むレポを作成しました: https://github.com/ManIkWeet/FlickeringIssue/
c++ - DirectX 9 エンジンの Z バッファが D3DImage で機能しない
Direct9 エンジンを D3DImage 経由で新しい WPF アプリケーションに統合しようとしています。Z バッファーを除いて、すべてが機能しています。AutoDepthStencil を FALSE にすると、メッシュをレンダリングできますが、深度が機能しません。AutoDepthStencil をアクティブにすると、何も描画されません。私は何日も探し回っていましたが、meqを助けるものは何も見つかりませんでした
Hers のプレゼンテーション パラメータ
renderStates :
リセット:
サーフェスとデバイスの作成 :
行列:
c# - SharpDXElement の代替が必要です。SharpDX WPF のちらつきの回避策
完成間近の SharpDX プロジェクトがあります。対話には Kinect を使用します。このため、私のプロジェクトでは Kinect 領域と KinectUserViewer オブジェクトの両方に WPF を使用しています。SharpDX はこれまでのところすべてにうまく機能していましたが、direct3D を多用するプログラムの特定の部分に到達すると、ちらつき始めます。これは、D3Dimage (MainWindow.xaml の SharpDXElement によって利用される) が「根本的に壊れており、WPF での効率的な D3D レンダリングには適していない」可能性があるという事実に明らかに関連しています[1]。WPF 要素を保持し、direct3D でちらつきを防ぐ方法はありますか?
wpf - WPF の D3DImage.IsFrontBufferAvailable を無視できますか?
私は常に WPF のD3DImage.IsFrontBufferAvailableに関する一般的なアドバイスに従い、フロント バッファーが利用できない場合はレンダリングを停止しました。ただし、D3D デバイスをリセットした後、このプロパティがスタックしたままになり、元に戻らfalse
ないことがありtrue
ます。
デバッガーにドロップしてプロパティを無視し、とにかくレンダリングを続行しない限り、実際には元に戻りtrue
、すべてが再び機能し始めます。
チェックを完全に削除D3DImage.IsFrontBufferAvailable
し、常にプロパティを完全に無視してもうまくいくようです。
他の理由で一部の人々からも推奨されているようです。
IsFrontBufferAvailable
フラグが使用できないことを示している場合でも、適切にレンダリングできることに注意してください。トリックは、単にフラグを無視することです。
それを完全に無視することの欠点は何ですか?(または、動作を停止させない他のトリックはありますか?)
wpf - DirectX 11 でレンダリングされたテクスチャが透明になる
D3DImage コントロールを介して DirectX 11 および WPF の SharpDx を介して BGRA32 ピクセル形式にデコードされる IP カメラから H264 ビデオ フレームをレンダリングしています。
多くの調査とさまざまなサンプルと例の調査の後、最終的にDirectX 11 で H264 フレームをレンダリングすることができました。
私の現在のセットアップには、以下のように頂点シェーダーとピクセル シェーダーをセットアップすることが含まれます。
新しいフレームを受け取るたびに、次のようにリソースをマッピングして RenderTexture を更新します。
私の効果/HLSL ファイル:
画像は正しくレンダリングされますが、親色の背景色が黒以外の場合、不透明に見えます。
今、テクスチャを透明にレンダリングしているここで何が起こっているのか正確に理解できないようです。
以下に示すように、親グリッド コントロールの背景がコアラの写真の場合も、レンダリングを試みました。
この問題で何か助けていただければ幸いです。
wpf - D3DImage を学習しようとしています - DirectX 参照の取得が見つかりません
私は WPF アプリを持っており、DirectX/Direct3D コードを記述してアプリの WPF D3DImageに表示する方法を学びたいと考えています。http://www.codeproject.com/Articles/28526/Introduction-to-D-DImageからサンプル コードをダウンロードしましたが、ビルドしようとすると、
参照されているコンポーネント 'Microsoft.DirectX' が見つかりませんでした。
参照されているコンポーネント 'Microsoft.DirectX.Direct3D' が見つかりませんでした。
何かへの参照の追加を行う必要があると思いますが、何ですか? DirectX SDK をインストールする必要があると思いますが、どの SDK ですか? (誰かがWPFは9までしか動かないと言いましたか?)それをしたら、それをどのように使用すれば元の問題を解決できますか?
wpf - 3D3 デバイスと RDP ウィンドウの最小化によるリモート デスクトップの動作
私たちの C# WPF では、マップを表示するサード パーティの (管理されていない) ライブラリを使用します。System.Windows.Interop.D3DImageクラス
を使用します。
サード パーティ ライブラリは、IntPtr32 サーフェスの位置プロパティに Direct3D を使用します。
別のコンピューターからリモート デスクトップを開いて WPF クライアントを表示しようとすると、マップが表示されます。
WPF UI クライアントが起動したら、RDP セッションを最小化するか、RDP を閉じると、例外が発生します。
ビデオストリーミングアプリケーションでの私の経験から、ウィンドウが最小化されると、帯域幅を節約するために画像のレンダリングが停止されます。
私はrdpが同じように行動していると思いますか?構成可能ですか?ウィンドウを最小化してもストリーミングを続けたい。
ここで述べたように、.RDP ファイルに追加の設定があることは知っています。
directx は次のように設定されています: redirectdirectx:i:1
これまでの部分的な回答:
RDP クライアント アプリケーションが RDP サービスに接続しているとき、ウィンドウが表示されているときは GUI モードであり、最小化されているときは GUI-LESS モードであり、Direct 3D コンポーネントは実際には失われています。最小化中にそれらを維持するには、レジストリ キーをオンにする必要があります ( RemoteDesktop_SuppressWhenMinimized ) 。