問題タブ [direct3d]

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

.net - Windowsフォームで画像にオーバーレイを描画する最速の方法

.net で画像に描画する最速の方法は何ですか?

Windowsフォームコントロールにある別の画像の上に画像を描画しようとしています。ループを使用して直接描画しようとすると、Eon がかかることがわかっています。

私が聞いたオプションは、GDI+、Direct Draw、または DX10 です。固定サイズのビットマップから始めて、3 つ以上のオーバーレイ、レイヤーを適用した後、フォーム オブジェクトに割り当てます。

ありがとう、

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

directx - さまざまな HLSL サンプラーの種類は何ですか?

私は現在 DX9/SM3 を使用していますが、HLSL サンプラーに関する MSDN ドキュメントには、さまざまなサンプラー タイプの使用方法の説明が非常に不足しているようです。さらに悪いことに、彼らは DX9 と DX10 を 1 つの記事でカバーしようとしているため、すべてのキーワードがごちゃまぜになっています。

sampler Name = SamplerType { Texture = < texture_variable >; [状態名=状態値;] ... };

...

サンプラーの種類

[in] 次のいずれかであるサンプラーの種類: samplersampler1Dsampler2Dsampler3DsamplerCUBEsampler_stateSamplerState

Direct3D 9 と Direct3D 10 の違い:

Direct3D 10 は、1 つの追加のサンプラー タイプをサポートします: SamplerComparisonState

この書き込みに反して、SamplerStateDX10のみのような気がします。私が目にする事実上すべてのコードは、 SamplerType を使用sampler_stateしています。BasicHLSL (DX9) からの簡単な例:

samplerさまざまな_SamplerType_s がすべて存在するのはなぜsampler2Dですかsampler_state。とにかくフェッチするときは明示的である必要があります。たとえばtex2DtexCUBE、では、ここで何が起こっているのでしょうか?

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

c++ - Direct3D、Axisを組み合わせて複数のIPカメラGUIを作成

今、私がやろうとしているのは、Axis IPカメラからのストリーミング画像を表示する新しいGUI、本質的にはdirectX(より正確にはdirect3D)を使用するソフトウェアを作成することです。

とりあえず、プログラム全体のフローは次のようになると思いました。1.Axisプログラムを取得してストリーミング画像を取得します。2。画像をDirect3Dプログラムに渡します。3.画面にプログラムを表示します。

現在、私はaviビデオからビデオフレームをロードして表示する(テスト用の)やや基本的なDirect3Dアプリを作成しました。DirectXを使用してビデオから直接画像をロードする方法がわからないため、OpenCVを使用してビデオからフレームを保存し、DXにアップロードさせました。非常に遅い。

現在、いくつか不明な点があります。1. C ++で動作するAxisプログラムを入手する方法(後で例を調べますが、大したことはありません)2.AxisIPカメラプログラムから直接画像をアップロードする方法。

では、私のプログラムをより効率的に機能させる方法について、何かアドバイスや提案はありますか?何でも私に知らせてください。

0 投票する
6 に答える
6462 参照

directx - DirectXでシーンの明るさ/コントラスト/ガンマを調整しますか?

D3DXのスプライトオブジェクトで満たされたDirect3Dアプリケーションで、明るさとコントラストをグローバルに調整できるようにしたいと思います。可能であれば、コントラストは重要です。

私はここでOpenGLについてこの質問を見ました:OpenGL でシーン全体の明るさ/ガンマを微調整します

しかし、それでは、DirectXのコンテキストで必要なものは得られません。これはおそらくピクセルシェーダーでもできることですが、バズーカでハエを撮影しているようで、ソフトウェアでシェーダーを実行する必要がある古いGPUとの下位互換性について心配しています。これは可能であるように思われます。元のHalfLifeのような古いゲームでさえ、シェーダーの時代よりずっと前にこのような設定があったことを覚えています。

編集:また、これはフルスクリーンアプリケーションではないため、1つのDirect3Dデバイスに影響を与えるだけで、モニター全体のグローバル設定ではないものである必要があることに注意してください。

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

c++ - D3DPT_TRIANGLESTRIPプリミティブ型を使用してDirectXで2つの切り離された長方形を描画する方法

私はDirectXを初めて使用し、を使用して1つのシーンに2つの長方形を描画しようとしていD3DPT_TRIANGLESTRIPます。1つの長方形は問題ありませんが、2つの長方形はまったく異なる球技です。D3DPT_TRIANGLELISTはい、プリミティブ型で描画された4つの三角形を使用して描画できます。私の好奇心は、を使用することに関連する技術にありD3DPT_TRIANGLESTRIPます。私が使用している1つのRectangleに使用しているコードの一部は、D3DPT_TRIANGLESTRIP次のとおりです。

より重要なコード...

次に、そのようにレンダリングします...

このモデルに基づいて、コードを簡単に複製し、カスタム頂点のx値とy値を変更して、別の頂点バッファーを作成すると、機能します。

個人的には、特に100個の長方形などを描画する必要がある状況を考えると、これは最善の方法ではないと感じています。問題は、私には他のアイデアがないということです。だから私の質問は、2つの長方形を描くための最も効率的な方法は何D3DPT_TRIANGLESTRIPですか?また、現在の長方形を複製および変換する方法はありますか?

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

directx - Direct3D による最も基本的な変換頂点描画

私は DirectX をまったく初めて使用するので、最も基本的な Direct3D 構成で (学習目的で) 変換されていないプリミティブを描画したいと考えています。変換された頂点 (D3DFVF_XYZRHW フラグが設定された頂点) を持ついくつかのプリミティブを既に描画しました。

現在、変換されていない頂点で同じ出力を取得しようとしていますが、画面にビジュアルが表示されません。FVF を変更して頂点を調整しましたが、変換マトリックス (ワールド、ビュー、投影) をまだ設定していません。これらのマトリックスのいずれかを設定する必要がありますか? 行列が設定されていない場合、変換された頂点と同じようにすべてが機能すると思いますが、明らかにそうではありません。

デフォルトで表示されるエリア (ワールド座標) は? それを機能させるために何をしなければなりませんか?

これは基本的に私がしていることです:

前もって感謝します!

編集:今、私はそれを手に入れました。照明が有効になりました。愚かな初心者の間違いです。とにかく助けてくれてありがとう!

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

wpf - WPF は、標準コントロールでも Direct3D 呼び出しに依存していますか?

thisおよびthis other questionのフォローアップとして、ボタンやコンテナーなどの標準コントロールであっても、WPF が Direct3D 呼び出し (2D DirectDraw 呼び出しではなく) に完全に/ほとんど依存しているかどうかを (好奇心から) 理解しようとしています。窓そのもの。

ウィキペディアは次のように述べています。

ウィンドウなどのデスクトップ アイテムを含むすべてのグラフィックは、Direct3D に基づいています。

これは本当ですか?誰かがこの件に関するさらなるリソースを拡大して提供できますか?

どんな助けでも大歓迎です!

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

direct3d - ログインしていないときに Direct3d を初期化する - または - Windows ログインを自動化する

ウィンドウを作成する必要がない場合でも、初期化の一部として Direct3d を初期化するアプリを使用するビルド プロセスを自動化する必要があります。

Windows タスク スケジューラ (XP 上) を使用してこのタスクを自動化しようとしています。デスクトップとの対話を許可するようにタスク スケジューラ サービスを構成しました。

私が直面している問題は、ユーザーが完全にログインしていない場合、またはユーザーがログインしていてもコンピューターがロックされているときにタスクが開始された場合、問題のアプリが失敗し、Direct3d が初期化に失敗したというメッセージが表示されることです。

誰でもこれを回避する方法を考えることができますか? いくつかの構成オプション (Windows、タスク スケジューラ、または DirectX) がありませんか? このアプリを起動する前に、Direct3d を強制的に初期化するためにできることはありますか? アプリを起動する前にユーザーがログイン (またはコンピューターのロックを解除) できるように、Windows ログオンをスクリプト化する方法はありますか?

最終的には、ユーザーを常にログインさせ、コンピューターのロックを解除したままにすることができますが、明らかにこれは望ましい解決策ではありません。

アイデアをありがとう!

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

3d - 3D モデリングの問題 - 再検討

これは私が投稿した以前の質問のフォローアップです。今回はより良い説明を付けてください。

人の目の動きを記録するピンホールカメラが取り付けられたメガネを作りました。カメラは目の下にあるため、目を見上げています。また、Y 軸 (つまり、カメラが左または右にわずかに傾いている) および Z 軸 (つまり、カメラが時計回りまたは反時計回りにわずかにねじれている) を中心にわずかに回転しています。

ビデオから、画像内のポイントのセットを抽出します。これは、ほぼ直線に見えるはずですが、カメラが人の目​​をまっすぐに見るように設定されていないため、そうではありません。

カメラの向きと、カメラが見ているイメージ ポイント IP1(x,y) を表す単位ベクトル U がわかっている場合、カメラが (0 、0、-z)?