問題タブ [managed-directx]
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.
c# - DirectX 9 - デバイスを作成し、DLL 内のテクスチャにレンダリングしますか?
DLL でマネージド DirectX 9 デバイスを作成し、その DLL を使用してシーンをオフスクリーン サーフェスにレンダリングしようとしています。オフスクリーン レンダリングの方法は知っていますが、私の質問は次のとおりです。
DLL 内で directx デバイスを作成することは可能ですか?
弱い試み #1 ( InvalidCallException
):
弱い試み #2 ( InvalidCallException
):
使用可能なデバイス コンストラクターのオーバーロードは次のとおりです。
助けがあれば、私の一日がうまくいく可能性があります!
c# - DirectX9の単純なHLSLグロー/ブラー効果
High LevelShaderLanguageとDirectX9マネージドライブラリを使用して単純なグロー/ブラーシェーダーを作成するのに役立つリソースを見つけるのに何日も苦労してきました。
私がする必要があるのは、CustomVertex.TransformedColored
頂点の配列を単純な線として描画し、HLSL効果によってぼかし/光らせることだけです。
私はインターネットを約3日間検索していくつかの結果を出しましたが、本当に良いチュートリアルや例を見つけることができません。私はHLSLの基本的な知識を持っていますが、このシェーダーの書き方を理解するのに十分な理解はありません(3冊のDirectXブックのHLSLの章も読んだことがあります)。
ここにいくつかの(要約された)コードがあります:
投稿する必要のある質問の数とコードの量を考えると、HLSLの特定の部分に関するヘルプをあまり探していないと思います。実際には、リソースを見つけるためのヘルプを探しています。
c# - メッシュのちらつきの問題:DirectX HLSL
問題: Managed DirectX 9でHLSL (High Level Shader Language)を使用してメッシュをレンダリングしています。メッシュの複雑さ(頂点と面の数)によっては、ちらつきの問題が発生することがあります。
明らかに、複雑度の高いメッシュはレンダリングに時間がかかるはずであり、ちらつきの量はメッシュの複雑さとともに増加します。ただし、発生するのはメッシュがまったくレンダリングされておらず、メッシュの描画にかかる時間が大幅に短縮されていることです。
Increased Mesh Complexity -> Increased Flickering
コード:
結果:これは私が得た出力です(読みやすくするために上記のコードに含まれていないタイマーを挿入しました):
HLSLコード:これは省略されたHLSLコードです。これは実際のコードではないことに注意してください。構文エラーを掘り下げないでください。実際のコードは非常に似ていることを保証します。
ヘルプ/アイデア/提案をいただければ幸いです。ありがとう!
c# - 4 点イメージ変換に制限を課す
アプリケーションの 4 点画像変換に取り組んでいます。ユーザーは、各コーナーをドラッグして有効な四角形を作成するか、その「バウンディング ボックス」を使用して垂直方向、水平方向、および比例的にサイズを変更します。
これまでのところ、画像変換部分が機能しています。しかし、私はそれに制限を課すのに苦労しています...
- 頂点は互いに交差しません。つまり、ユーザーが砂時計の形を作成することを許可していません。常に四角形でなければなりません。
- 同様に、各コーナー間の角度は 0 より大きくする必要があります。そうしないと、頂点が直線になります。
- この画像には最小サイズがあります。つまり、各コーナーは、互いに、およびそれらの反対側の線から一定の距離離れている必要があります。
- ユーザーは、画像を裏側に「反転」することはできません。4 つのコーナー (p1、p2、p3、および p4) は、時計回りの順序で表示される必要があります。
- 凹型の凧の形と三角形が有効です。
これらの問題に関する公式または論文があるかどうか疑問に思っていました。私は現在、2 つの線分が交差するかどうか (およびどこで交差するか) を見つけるための式と、線上の別の点に最も近い点を見つけるための式を持っています。私の実装のほとんどは、私が好きなようにユーザーフレンドリーではありませんでした.
PS このプロジェクトでは、DirectX を使用して C# を使用しています。ただし、アプリケーションは 2D のみです。
graphics - ゲームプログラミングを始めるのに最適な本は何ですか?
私はプログラミングを始めて 2 年ちょっとになりますが、グラフィックス プログラミングを始めて、簡単なゲームをいくつか作りたいと思っています。私が DirectX を学ぶために読んだ本の多くは、あなたが DirectX の基本を知っていることを前提としていますが、私は知りません。説明。では、グラフィックス プログラミングはまったくの初心者であるが、一般的なプログラミングについてある程度の知識がある人にとっては、どのような本がよいのでしょうか?
c# - DirectXZバッファの問題
C#マネージドDirectXアプリケーションで見られる奇妙なアーティファクトの原因を知っている人はいますか?これが私が抱えている問題のスクリーンショットです:
あなたが見ているのは、その下に平らな面がある地形です。
- 左側には、表示されるべきではない(下にある)にもかかわらず、地形の前に飛行機が表示されています。
- 真ん中には、私が「ブラインド」と呼んでいるものを見る移行段階があります
- 右側には正しく表示されています
これはZバッファの問題であるに違いありませんが、私はそれを整理することができませんでした。他の誰かがこれと同じ問題に遭遇しましたか?それは私を狂わせています!
c# - SlimDXDirectInput初期化
最近、Direct3D11を使用してMDX2.0からSlimDXに交換しましたが、キーボードとマウスのコントロールを実装するのに苦労しています。
MDXでは使用できます
ただし、SlimDXには別の方法があります。SlimDXでは、デバイスは抽象クラスであり、代わりにDirectInputオブジェクトを渡すことによって初期化する必要があるKeyboardクラスがありますが、DirectInputオブジェクトの作成方法やその目的を理解することはできません。
私が知る限り、SlimDXのドキュメントはかなりスリムですが、その特定の癖を学ぶための優れたリソースを誰かが知っているなら、ありがとう。
c# - スプライト上に透明な四角形を描画する C# MDX
Tetrisgame で「Pausemenu」を作成したいのですが、Esc を押すとメニューがポップアップし、ユーザーはゲームが実行されていないことを明確に認識しています。ゲームのスプライト全体に透明な黒い四角形を描画したいのですが、 .Net Framework 3.5 で C# Managed DirectX 9.0c を使用しています。(テクスチャで同じ効果を実現できますが、設定でボードの幅/高さを変更できるため、これは見苦しい解決策になります)
これを達成する簡単な方法はありますか?
c# - C#: DirectX デバイスを作成できません。ハードウェアタイプもソフトウェアタイプも機能しない
次のコードを使用して DirectX デバイスを作成しようとしています。
問題は、これが一部のコンピューター (私の職場のコンピューターなど) でのみ機能し、他のコンピューター (具体的には、Panasonic CF-19 Toughbook) では機能しないことです。問題のある PC で dxdiag を介してハードウェア アクセラレーションが有効になっていることを確認しましたが、それでも動きません。
残念ながら、表示される唯一のエラー メッセージは「アプリケーションでエラーが発生しました」です。上記のコードの間にいくつかのメッセージ ボックスを貼り付けたことがありますが、ex1 および ex2 の catch ブロックにヒットすることはないようです。
これを修正する方法についてのアイデアはありますか?
編集: 申し訳ありませんが、PresentParameters を表示するのを忘れていたことに気付きました。
c# - C#からC ++/CLIコンストラクターを呼び出すときにエラーが発生しました
次のスニペットを介してSlimDXのStateBlockを使用して、状態を保存および復元しようとしています。
StateBlockMaskとStateBlockはどちらもクラスです。これにより、コンパイルエラーが発生します。
SOに関する他のいくつかの投稿を読むと、これは間違った引数でマネージコードを呼び出すことに関係している問題のようです。SlimDXのソースで、私は見つけます:
私はC++/ CLIの経験がまったくないので、ここに何か問題があるのではないかと思います(欠落や余分な^など)、または自分の側に障害を集中させる必要がありますか?
(注:この質問はgamedev.netにクロスポストされています。同じ質問を持つ将来のユーザーも、そこで与えられた回答を確認することをお勧めします)