問題タブ [direct3d9]

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 投票する
1 に答える
896 参照

c# - Direct3Dアップロードビデオテクスチャ

次を使用して、Direct3D9デバイスでビデオを再生しようとしています。

  1. nVLC-ファイルからRGB32フレームをフェッチするため
  2. SlimDX-テクスチャを使用してビデオデバイスに実際にフレームを表示します。

これがRGB32フレームを受信するための私のコードです。

そして、これがSetTextureの実際の使用法であり、テクスチャを正方形にマッピングします。

そして最後に実際のレンダリング:

今、それは私のマシンで動作します。問題なく。すべてのビデオファイルとすべての位置で。しかし、WinXPを確認したところ、画像が完全に壊れていました。これは、機能していないものと機能しているものの両方のスクリーンショットです。

http://www.upload.ee/image/2941734/untitled.PNG

http://www.upload.ee/image/2941762/Untitled2.png

最初の画像では、それらは_maincontentSurfaceと_secondaryContentSurfaceであることに注意してください。誰かが何が問題になるのか考えていますか?

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

c++ - スプライトオブジェクトは、ベクターに配置されたときにレンダリングされなくなりました

Direct3D9とC++を使用して、小さな2Dゲームを作成します。今まで見たことのない問題に遭遇しました。ゲームはショップベースなので、カスタマークラスがあります。私はゲームでオブジェクトを作成しました、そしてそれは私が分の間望むようにレンダリングして動作します。ある時点でいつでもそれらのコレクションが必要になるため、代わりにオブジェクトをベクターに入れることにしました。しかし、私の問題は、オブジェクトをベクターに入れると、画面に表示されなくなることです。

エラーは発生しません。DirectX関数からのすべてのリターンコードをテストファイルに出力しましたが、何も失敗しませんでした。正常に動作し、画面に表示されません。ベクターに入れる以外に何も変わっていません。

ベクターは単にオブジェクトを作成し、それをコピーして元のオブジェクトを削除していると言われたので、ベクターをポインターのベクターに変更しました。ただし、このメソッドを使用すると、Direct3Dポインターがすぐに無効になるように見えます。何が悪いのかはわかっていると思いますが、最善の行動方針はわかりません。

顧客クラスは次のとおりです。

これがメインのコードです

何かをきちんと説明しなかったり、見落としたりしてしまった場合は、あらかじめお詫び申し上げます。私は物事を説明しようとするのが悪いことで有名です!:/誰かが私を助けることができますか?私はこのプロジェクトのためにXNAに固執するべきだと考え始め、後でポインターとベクトルについてもう少し深く学びました...しかし今では遅すぎます:(

ありがとう

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

c++ - ボクセル ジオメトリを使用したライトマッピング

ゲーム エンジンのレンダリング側を書いている間、私は現時点でマンネリに陥っているようです。私の当初の計画では、少なくとも HLSL を使用して動的なピクセルごとのライティングを実装し、最大 8 つのライトについてシェーダーと通信するライト バッファーを用意することでした。

現在、マップ全体が 3 次元のブロック配列 (64x64x64) になっていることに注意してください。非常に基本的な顔削減アルゴリズムの後、最悪のシナリオでレンダリングする 32x32x32x6 の顔を見ています。負荷を減らすために他の方法を使用するつもりですが、最初にこれを解決したかったのです。

現在、シェーダーに 8 つのライトがあり、まともなカードである GTX 470 で約 60 ~ 120 のフレーム レートを取得しています。他にも検討しなければならない最適化がたくさんあることは明らかですが、動的ライティングは私にとって重要ではないため (少なくとも 8 つのライトではそうではありません)、ライト マッピングを検討しています。

面ごとに 4x4 ルーメルがある場合、レベル全体のライト マップのテクスチャ アトラスを見ています。これは 32x32x32x6x16 の大きさで、ピクセルあたり 4 バイトです。これは、私が使用する 2048x2048 (2 乗に最も近い解像度) のテクスチャになります。

私はすでにいくつかのソース、特にこれhttp://www.flipcode.com/archives/Light_Mapping_Theory_and_Implementation.shtmlを見てきました。基本的なシーンでそれを実装する方法を理解していますが、方法に困惑しています現在のジオメトリ状況で実装できました。

だからここに私の質問があります。これを行うより良い方法はありますか?このサイズのライト マップは使用しても問題ありませんか? バイリニアフィルタリングは最終的に物事を本当にスムーズにするように見えるので、面ごとに4x4ルーメルを使用することに満足しています。また、静的なライト マップ システムと HLSL を使用したピクセルごとの動的なライト マップ システムを組み合わせるのはかなり簡単でしょうか?

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

directx - Direct3D 9 を使用した 2D プログラミング - テスト イメージが歪んでいる

DirectX 9 で 2D スプライトを使用して単純な 2D ゲームを作成しようとしていますが、画像がきれいに表示されません。bmp 画像を読み込んで、そのまま画面に表示したいと思います (補間なし、拡大なし、フィルタリングなし、アンチエイリアシングなしなど)。

何かが欠けていると確信していますが、100x100 bmp を画面にレンダリングしようとすると、ピクセル アート画像が通常わずかに縮小されたときに見えるように、ぎくしゃくして歪んで見えます。MS ペイントにロードしたときとまったく同じように bmp を表示したいのです。

なぜこれが当てはまるのか、誰にも分かりますか?私のコードを以下に示します。

初期化コード:

レンダリング コード:

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

c++ - ハードウェアオーバーレイはサポートされていますか?

私はWindows8で実行しており、VGAはGeforce 8200m Gです。C++プログラムを作成し、d3d9を使用してハードウェアオーバーレイを作成しています。私が聞きたい質問は、Windows 8はまだハードウェアオーバーレイをサポートしていますか?また、VGAがそれらをサポートしているかどうかを確認するにはどうすればよいですか?前もって感謝します。

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

c++ - ASSIMPはdirectx9とメッシュします

悲しいことに、この質問には答えられませんでした。

ASSIMPを使用してモデルの.Xファイル[または実際にはその他]をロードしようとしています。

これは私が使おうとしているコードです:

DirectXエラーはなく、モデルは表示されません。

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

direct3d - FXC エラー「最大一時レジスタ インデックスを超えました」

HLSL で作業していますが、シェーダーの 1 つから次のエラーが発生します。

エラー X4505: 最大一時レジスタ インデックスを超えました

これを引き起こしている行は次のとおりです。

パスは次のように定義されます。

input.Tex は TEXCOORD として宣言された float2 です。

誰でもこのエラーを説明できますか? MSDN (または私が知る限り他のどこにも) に文書化されておらず、ここで何が問題なのかが明確ではありません。

シェーダー モデル 4.0 レベル 9_3 を使用しています。

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

direct3d - Direct3D11 GL_RGBA4 相当?

D3D11 に相当する GL_RGBA4 テクスチャ フォーマットはありますか?見つかりません。DXGI_FORMAT_B5G6R5_UNORM と DXGI_FORMAT_B5G5R5A1_UNORM の 16 ビット形式がありますが、4444 形式はありません。

D3D9 にも全部あるのに、なぜ D3D11 にないのかわかりません...

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

directx - 最適化されたパーティクル システム Direct3D 9

ポイント スプライトを使用して、バッチ処理用の動的頂点バッファーを使用して、direct3d9 でパーティクルを作成しました。しかし、30fps では 2500 個のパーティクルしか作成できません。私はインターネットで、彼らが何百万もの粒子を作り出すことができるのを見てきました. Direct3D で何百万ものパーティクルを作成するにはどうすればよいですか?