問題タブ [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.

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

slimdx - テクスチャをシェーダー(DirectX11 / SlimDX)にロードするにはどうすればよいですか?

Texture2Dをすぐに利用できます。そのTexture2Dを入れることができる、明らかに機能しているシェーダーテクスチャサンプラーとシェーダーテクスチャ変数があります。

唯一の問題は、DirectX11のシェーダーにテクスチャをロードする方法がわからないことです。Googleが役に立たないか、適切な検索用語を作成できないだけです。

必要なもの:Texture2Dを取得してシェーダーにロードするコード。たとえば、その方法に関するリンク。

とにかく、これが私のシェーダーコードです:

ありがとう。

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

c# - D3DERR_INVALIDCALL:無効な呼び出し(-2005530516)

WinXP(SP3)PCでテストするとエラーが発生するようです。エラーは以下のとおりですが、Win7ラップトップを使用しているときにエラーが発生しません。

エラーの原因となるコードは次のとおりです。

私の知る限り、クラッシュは新しいデバイスの作成に関係しています。

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

c# - C#でSlimDXスクリーンキャプチャを作成するときに、NullReferenceExceptionが処理されませんでした

SlimDXでスクリーンショットを作成しようとしています:

エラーの発生:

NullReferenceExceptionは処理されませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。

行で:

私は何が間違っているのですか?

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

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 ミリ秒) は非常に良いことです。

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

video - SlimDX / DirectX の YUV オーバーレイ?

ffmpeg を使用してビデオ ファイルをデコードし、デコードすると YUV 画像を取得します。SlimDX / DirectX を使用して、この YUV 画像をサーフェス (またはテクスチャ) へのオーバーレイとして表示するにはどうすればよいですか?

ありがとう。

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

geometry - SlimDXで球にテクスチャを追加する

球メッシュ(Mesh.CreateSphereで作成)にテクスチャを適用する方法がわかりません。問題は、Mesh.Createで作成されたメッシュにテクスチャ座標がないこと(またはテクスチャ座標があるかどうか)であり、それらを追加する方法がわからないことだと思います。MDXのサンプルコードはすでにいくつか見つかりましたが、slimDXでは使用できないCustomVertex構造を使用しています。標準メッシュにテクスチャを追加するのは難しいですか?なぜslimDXにそれを行うための事前定義された関数がないのだろうか...あなたのアドバイスに感謝します。

(私はDirect3D9を使用しています)

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

text - ステンシルバッファでテキストを描画する

画面の一部のみが描画呼び出しの影響を受けるように、ステンシルバッファを設定しました。具体的には、狭いエリアに描きたいです。UIになるので、描画されるものはすべて、ある種の2Dスプライトになります。スプライトオブジェクトの使用は非常にうまく機能します。エリアの外側にあるスプライトは切り取られます。ただし、テキストを追加すると、後で描画されるすべてのものとテキスト自体が切り取られません。PIXは、描画テキストが呼び出されるとすぐに、新しいDepthStencilStateがステンシルバッファをオフにして設定されていることを示しています。テキストは、他のスプライトの描画を担当する同じスプライトオブジェクトによって描画されます。

描画は、SlimDX.Direct3D10.Font.Drawメソッドを介して実行されます。

DirectXに状態オブジェクトを変更しないように強制する方法はありますか?SlimDXを使用していますが、そのコードによると、状態の変化の原因ではないようです。

ニコ

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

c# - WindowsXPマシンでSlimDXC#アプリケーションを実行する際の問題

スクリーンキャプチャを作成する単純なC#WinFormsアプリを作成しました

今それを呼び出すために:

このアプリをWindows7x64で実行すると、すべて正常に動作します(ここでコンパイルされました)

残念ながら、このアプリをWindows XP x86マシンで実行しようとすると、次のエラーが発生します。

http://i.minus.com/ipilqHeWqbvKe.png

どのように修正しようとしましたか?

  • WinXPに最新のDXをインストールしました

  • WinXPに最新のSlimDXをインストールしました(この手順で以前の問題は解決しました)

  • WinXPに最新の.NetFrameworkv.4をインストールしました

  • このアプリをx86としてコンパイルし、同じ理由でSlimDX.dllx86を使用しました

  • また、slimdx.dllをdxcapture.exe(アプリ名)と同じフォルダーに配置します

何が問題なのでしょう?WinXPはDirectx9スクリーンキャプチャをサポートしていますか?

編集:さまざまなコード行をコメントアウトしようとしましたが、「デバイスの作成」が問題のようです。つまり、この行を意味します。

WinXPマシンにはATIグラフィックが統合されているので、わかりません。おそらくそれが問題であるかもしれませんが、そうではないかもしれませんが、他のPCでプログラムを確認することはできません。

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

directx - ジオメトリ シェーダーが原点で追加のポイントを受け取る

ジオメトリ シェーダーの使用に関して非常に奇妙な問題があります。ポイントを取得して三角形に変換する非常に単純なジオメトリ シェーダーを作成しました。

ここにシェーダーがあります:

次のように 4 つの頂点を送信します。

そして、私はこの出力を取得します:

プログラムからの出力、奇妙な真ん中の三角形

ご覧のとおり、入力アセンブラーに送信した三角形は 4 つだけで、5 つが出力されています。

なぜこれが起こるのかについてのアイデアはありますか?バッファによって割り当てられている余分なメモリに関連している可能性があるのではないかと心配しています...しかし、問題がどこにあるのか正確にはわかりません。

前もって感謝します!

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

wpf - WPFとSlimDX(DirectX 11)の相互運用

こんにちは私は、D3DImageと共有テクスチャを使用して、SlimDXとDirectX11グラフィックをWPFアプリケーションに統合することができました。ただし、単純なシーン(SlimDXサンプルのGameOfLifeなど)を高解像度(2560x1440)でレンダリングすると、パフォーマンスが大幅に低下します。

レンダリングメソッドのパフォーマンスプロファイリングを試してみましたが、バックバッファを無効にするときにほとんどの時間がD3DImageのロックに費やされているようです。

描画後、デバイスのフラッシングに多くの時間が費やされます。

誰もが問題とこれを最適化する方法を知っていますか?WPFとSlimDXを統合すると、降下パフォーマンスが期待できますか?