問題タブ [slimdx]
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.
slimdx - テクスチャをシェーダー(DirectX11 / SlimDX)にロードするにはどうすればよいですか?
Texture2Dをすぐに利用できます。そのTexture2Dを入れることができる、明らかに機能しているシェーダーテクスチャサンプラーとシェーダーテクスチャ変数があります。
唯一の問題は、DirectX11のシェーダーにテクスチャをロードする方法がわからないことです。Googleが役に立たないか、適切な検索用語を作成できないだけです。
必要なもの:Texture2Dを取得してシェーダーにロードするコード。たとえば、その方法に関するリンク。
とにかく、これが私のシェーダーコードです:
ありがとう。
c# - D3DERR_INVALIDCALL:無効な呼び出し(-2005530516)
WinXP(SP3)PCでテストするとエラーが発生するようです。エラーは以下のとおりですが、Win7ラップトップを使用しているときにエラーが発生しません。
エラーの原因となるコードは次のとおりです。
私の知る限り、クラッシュは新しいデバイスの作成に関係しています。
c# - C#でSlimDXスクリーンキャプチャを作成するときに、NullReferenceExceptionが処理されませんでした
SlimDXでスクリーンショットを作成しようとしています:
エラーの発生:
NullReferenceExceptionは処理されませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。
行で:
私は何が間違っているのですか?
c# - Surface をビットマップに保存し、C# で DirectX スクリーン キャプチャを最適化する
丸一日テストした後、DirectX (SlimDX) を使用して現在の画面をキャプチャし、ファイルに保存する次のコードを思いつきました。
次に、次のことを行います。
..コードはこちら
結果は次のとおりです。
0.サーフェスを保存しない場合: avg. 経過時間:80~90ms
1. Surface を BMP ファイルにも保存する場合: format: ImageFileFormat.Bmp , avg. 経過時間:120ms、ファイルサイズ:7MB
2. Surface を PNG ファイルに保存する場合: format: ImageFileFormat.Png , avg. 経過時間:800ms、ファイルサイズ:300kb
質問は次のとおりです。
1.現在の画像キャプチャを最適化することは可能ですか? この記事によると、Directx スクリーン キャプチャは GDI よりも高速である必要があります。私にとって、GDI は通常、「ビットマップ」を取得するのに 20 ミリ秒かかりますが、DX を使用して「サーフェア」を取得するのに 80 ミリ秒かかります (両方とも保存なし)。
http://www.codeproject.com/Articles/274461/Very-fast-screen-capture-using-DirectX-in-Csharp
2a. Surface を PNG 画像形式にすばやく保存するにはどうすればよいですか? サーフェスを 7 MB の BMP ファイルに保存すると、同じサーフェスを 300 KB の PNG ファイルに保存する場合よりも、ほぼ 6 分の 1 の時間がかかります。
2b. 一時ファイルを作成する必要がないように、Surface を直接 Bitmap に保存することはできますか?
したがって、次のことを行う必要はありません: Surface -> image file; 画像ファイルを開く -> ビットマップ; 、代わりに:サーフェス -> ビットマップ
それは今のところすべてです。どんなヒントでも喜んで受け入れます、ありがとう!
編集:
次のようにして2bを解決しました:
編集2:
よりも高速です:
100ミリ秒で!!! ええ、私も自分の目を信じられませんでした ;) 一時ファイルを作成するという考えは好きではありませんが、50% のパフォーマンス向上 (200 ~ 300 ミリ秒以上ではなく 100 ~ 200 ミリ秒) は非常に良いことです。
video - SlimDX / DirectX の YUV オーバーレイ?
ffmpeg を使用してビデオ ファイルをデコードし、デコードすると YUV 画像を取得します。SlimDX / DirectX を使用して、この YUV 画像をサーフェス (またはテクスチャ) へのオーバーレイとして表示するにはどうすればよいですか?
ありがとう。
geometry - SlimDXで球にテクスチャを追加する
球メッシュ(Mesh.CreateSphereで作成)にテクスチャを適用する方法がわかりません。問題は、Mesh.Createで作成されたメッシュにテクスチャ座標がないこと(またはテクスチャ座標があるかどうか)であり、それらを追加する方法がわからないことだと思います。MDXのサンプルコードはすでにいくつか見つかりましたが、slimDXでは使用できないCustomVertex構造を使用しています。標準メッシュにテクスチャを追加するのは難しいですか?なぜslimDXにそれを行うための事前定義された関数がないのだろうか...あなたのアドバイスに感謝します。
(私はDirect3D9を使用しています)
text - ステンシルバッファでテキストを描画する
画面の一部のみが描画呼び出しの影響を受けるように、ステンシルバッファを設定しました。具体的には、狭いエリアに描きたいです。UIになるので、描画されるものはすべて、ある種の2Dスプライトになります。スプライトオブジェクトの使用は非常にうまく機能します。エリアの外側にあるスプライトは切り取られます。ただし、テキストを追加すると、後で描画されるすべてのものとテキスト自体が切り取られません。PIXは、描画テキストが呼び出されるとすぐに、新しいDepthStencilStateがステンシルバッファをオフにして設定されていることを示しています。テキストは、他のスプライトの描画を担当する同じスプライトオブジェクトによって描画されます。
描画は、SlimDX.Direct3D10.Font.Drawメソッドを介して実行されます。
DirectXに状態オブジェクトを変更しないように強制する方法はありますか?SlimDXを使用していますが、そのコードによると、状態の変化の原因ではないようです。
ニコ
c# - WindowsXPマシンでSlimDXC#アプリケーションを実行する際の問題
スクリーンキャプチャを作成する単純なC#WinFormsアプリを作成しました
今それを呼び出すために:
このアプリをWindows7x64で実行すると、すべて正常に動作します(ここでコンパイルされました)
残念ながら、このアプリをWindows XP x86マシンで実行しようとすると、次のエラーが発生します。

どのように修正しようとしましたか?
WinXPに最新のDXをインストールしました
WinXPに最新のSlimDXをインストールしました(この手順で以前の問題は解決しました)
WinXPに最新の.NetFrameworkv.4をインストールしました
このアプリをx86としてコンパイルし、同じ理由でSlimDX.dllx86を使用しました
また、slimdx.dllをdxcapture.exe(アプリ名)と同じフォルダーに配置します
何が問題なのでしょう?WinXPはDirectx9スクリーンキャプチャをサポートしていますか?
編集:さまざまなコード行をコメントアウトしようとしましたが、「デバイスの作成」が問題のようです。つまり、この行を意味します。
WinXPマシンにはATIグラフィックが統合されているので、わかりません。おそらくそれが問題であるかもしれませんが、そうではないかもしれませんが、他のPCでプログラムを確認することはできません。
directx - ジオメトリ シェーダーが原点で追加のポイントを受け取る
ジオメトリ シェーダーの使用に関して非常に奇妙な問題があります。ポイントを取得して三角形に変換する非常に単純なジオメトリ シェーダーを作成しました。
ここにシェーダーがあります:
次のように 4 つの頂点を送信します。
そして、私はこの出力を取得します:

ご覧のとおり、入力アセンブラーに送信した三角形は 4 つだけで、5 つが出力されています。
なぜこれが起こるのかについてのアイデアはありますか?バッファによって割り当てられている余分なメモリに関連している可能性があるのではないかと心配しています...しかし、問題がどこにあるのか正確にはわかりません。
前もって感謝します!
wpf - WPFとSlimDX(DirectX 11)の相互運用
こんにちは私は、D3DImageと共有テクスチャを使用して、SlimDXとDirectX11グラフィックをWPFアプリケーションに統合することができました。ただし、単純なシーン(SlimDXサンプルのGameOfLifeなど)を高解像度(2560x1440)でレンダリングすると、パフォーマンスが大幅に低下します。
レンダリングメソッドのパフォーマンスプロファイリングを試してみましたが、バックバッファを無効にするときにほとんどの時間がD3DImageのロックに費やされているようです。
描画後、デバイスのフラッシングに多くの時間が費やされます。
誰もが問題とこれを最適化する方法を知っていますか?WPFとSlimDXを統合すると、降下パフォーマンスが期待できますか?