問題タブ [sharpdx]

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

gdi+ - GDI+ DrawImage を PInvoked GDI と透過 PNG に置き換えます。

C# でイメージ サービスを作成しました。このサービスは、ベース レイヤー イメージ (JPG) を受け取り、もう 1 つ透明な PNG (32 ビット) をレイヤー化し、最終的な JPG イメージを出力します。この関数から最後のミリ秒をすべて絞り出そうとしていますが、GDI+ の DrawImage 呼び出しでコードがボトルネックになっています。マネージ コードは次のとおりです。

ここで、P/Invoke で GDI を直接呼び出すことによって得られるパフォーマンスの向上について読み、DrawImage 呼び出しを置き換えることを試みました。単体テストを作成して、JPG をロードし、その上に 1 つの透明な PNG を重ねるという同じ機能を再現しようとしました。

参照: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/29582142-0068-40dd-bd99-4b3883a76350

しかし、これは階層化されたイメージを生成できません。ベースJPGなしのPNGのみ。どうすればいいですか?ストレート GDI に関して言えば、私は自分のリーグから少し外れています。

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

asp.net - SharpDXを介してDirect2D画像をレンダリングする場合、ファイルの代わりにメモリストリームをどのように使用しますか?

セットアップ

Direct *ライブラリのマネージラッパーであるSharpDXを使用して、ビットマップをレンダリングし、PNGとして保存する特定のスクラッチプログラムについて考えてみます。

このプログラムを実行すると、プログラムの作業ディレクトリに「test.png」ファイルが作成され、次の美しい画像が表示されます。

出力画像

質問

素晴らしいです。GDI+の代わりにDirect2Dを使用して画像をレンダリングしました。これは、ASP.NETアプリケーションのコンテキストでよりサポートされていると思われます。さらに、Direct2Dは新しい注目度です。

Streamこのような画像をレンダリングし、PNGをまたはbyte[]配列として返し、ファイルシステムに書き込む代わりに、レンダリングおよびエンコード操作全体をメモリ内で実行する関数を作成したいとします。これは、Web要求に応答するためのものです。ファイルシステムを経由せずにブラウザに直接ストリーミングするのは理にかなっています。

GDI +では、これをMemoryStream非常に簡単に行うことができDataStreamましたが、バッファのサイズを知らなければ、SharpDXでの使用方法を理解することはできません。

  • P / Invokeを実行しCreateStreamOnHGlobal、それを使用しIntPtrてビルドする必要がありますDataStreamか?
  • DataStream私が見逃している過負荷はありますか?
  • エンコードされたPNG画像を保持するために必要なバッファを事前に計算する簡単な方法はありますか?
  • それとも、ファイルシステムの処理をやり直す必要がありますか?

助けてくれてありがとう!

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

c# - Winforms コントロールのペイント メソッドをオーバーライドしてテクスチャにペイントするにはどうすればよいですか?

3D アプリで Winforms (および最終的には HostElement 経由の WPF) を使用するために、Winforms を SharpDX プロジェクトと統合しようとしています。

次のことができるように、コントロールまたはフォームを作成または構成する必要があります。

を。
b.テクスチャにレンダリングします (スプライトとして表示できます*) 。コントロールがアクティブでないときに、入力をフィルター処理してマウス/キーボード イベントを削除します。

OnPaint と OnPaintBackground をオーバーライドするために Control と Form をサブクラス化しようとしましたが、これらは子コントロールには影響しません。さらに言えば、フォームの境界線にも影響を与えません (たとえそれらがあったとしても、私がまだ残っているので、それらだけでは十分ではありません)。 「親」が描かれていると思われる白い四角)。

コントロールまたはフォームの画面への描画を停止し、代わりにビットマップのみに描画するにはどうすればよいですか? (たとえば、ツリーが描画される前に Graphics をオーバーライドできる方法はありますか?)

* Winforms は真の透明度をサポートしていないため、(コントロールを画面にレンダリングするのではなく) この方法で行う必要があるため、ピクセル シェーダーで色分けされたピクセルをクリップする必要があります。

(確認するために、特に DirectX テクスチャを意味しているわけではありません。単純な System.Drawing ビットマップに満足しています (実際には好むでしょう))。

0 投票する
3 に答える
5131 参照

c# - WindowsストアアプリでSharpDXを使用してテクスチャを読み込む

C#ゲームをOpenTK(OpenGL)からSharpDX(DirectX)に変換し、Visual Studio 2010から起動して実行しました。また、Windows 8DeveloperPreviewのMetroのVisualStudio11からも起動して実行しています。ただし、Metroビルドにはまだテクスチャがないため、現在、ポリゴンは単純に色付けされています。問題は、イメージのロードに使用されるメソッドがMetroDLLにないことです。これらのメソッドはすべて、Windows StoreアプリのTexture2Dクラス(Resourceクラスから継承)にはありません。

これらが最終的にMetroに実装されるかどうか誰かが知っていますか?または、私が使用できる別のアプローチはありますか?これまでDirectXやSharpDXのことを知らなかったので、まだ耳の後ろでとても濡れていることを覚えておいてください。

SharpDXのヘルプや情報を見つけるのは簡単ではありません。これは、C#を使用したMetroでの3Dの優れたソリューションのように思われるためです。

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

c# - SharpDX、DirectWrite、および Windows フォーム

DirectWrite を使用して WinForm アプリの PictureBox にテキストをレンダリングできますか?

私は SharpDX を使用しており、DirectWrite のサンプルを試して、できる限り簡単に動作するケースを構築しようとしました。

Form を作成し、pictureBox のみを追加しました。次に、次のコード。フォームは表示されますが、PictureBox には何も表示されません。

どんなガイダンスでも大歓迎です。

ありがとう!

0 投票する
5 に答える
2590 参照

c# - SharpDXRenderLoopを終了する

SharpDXにはRenderLoop、レンダリングループで特定のデリゲートを実行するがあります。

私がする必要があるのは、なんとかしてレンダリングループを終了することです。

returnそれは現在のループの反復を終了するだけなので、私はただできません。

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

c# - 効率的な DirectX レンダリング

複数の 2-D 形状をサーフェスにレンダリングし、ユーザーがこれらの形状を操作できるようにする DirectX 9.0 コントロールを作成しようとしています。これまでのところ、さまざまな色の 100 万個の三角形をグリッドにレンダリングすることができました。ユーザーはマウスを使用して、このグリッドをパンおよびズームできます。しかし、待ってはいけません..私はこれを非効率的な方法で行っていることを知っています... 現在

、各三角形の頂点バッファがあり、レンダリングごとにストリームソースを設定し、プリミティブをジャイアントに描画します-ループ。実験として、1 つの三角形を含む頂点バッファーを作成してみました。別の for ループで、ワールド トランスフォームを変更してプリミティブを描画しました。パフォーマンスはひどかった。

私が本当に必要としているのは、いくつかのユニークな形状 (約 100) を保存し、それらを世界中で 1,000 回または 10,000 回以上スタンプする方法です。また、形状の単一インスタンスの色を変更できるようにしたいと考えています。派手な照明/テクスチャ/またはそのようなものは必要ありません。シンプルな色ばかり。

では、これを実現するための典型的な DirectX の方法は何ですか?

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

c# - Windows8リリースプレビューでSharpDXオーディオサンプルを実行するとクラッシュする

最新のSharpDXv2.2をダウンロードし、SharpDXSamples.slnでサンプルをビルドしました

ここに画像の説明を入力してください

XAudio2を使用する例を実行しようとすると、

ここに画像の説明を入力してください

サンプルは次のエラーでクラッシュします

ここに画像の説明を入力してください

スタックトレースは次のとおりです。

何が起こっているのかについて何かアイデアはありますか?他のライブラリをインストールする必要がありますか?

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

c# - ゲーム開発のための SharpDX と SlimDX の比較?

ゲーム開発に最適な API を提供するのはどれですか? どのライブラリが使いやすく、高速で、より多くのドキュメントがありますか?

0 投票する
4 に答える
3516 参照

debugging - Visual Studio 2012でシェーダーをデバッグすると、シンボルが見つかりません

Visual Studio 2012の新しい優れた機能を試して、Direct3Dベースのアプリをデバッグした方が多いかどうかはわかりません。

アプリのフレームを正常にキャプチャした後、VertexShaderの実行をデバッグしたいと思います。 ここに画像の説明を入力してください

緑の三角形をクリックして特定の頂点をデバッグしましたが、「シンボルが見つかりません」というメッセージが表示され、デバッグできません。

Visual Studioがシンボルを見つけるために何をすべきか知っている人はいますか?

ありがとう。