問題タブ [directx-10]
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.
directx - DirectX 10 原点で明るい?
Frank Luna の本を使用して DirectX 10 を学習していますが、取得している照明の一部に少し混乱しています。シーン内を移動できるディレクショナル ライトとポイント ライトの 2 つのオブジェクトがあります。私の問題は、ポイントライトを移動すると、ライトが移動しますが、原点から遠ざかるにつれて暗くなるということです。原点にあるときは強烈な白色光を持っています。これはなぜですか?どうすれば正しく動作させることができますか? ありがとう。
ポイント ライトのコードは次のとおりです。
効果ファイル:
そして光は次のように定義します:
visual-c++ - DirectX 10 シェーダー パス記述子の破損
皆さんこんにちは。
理解できないような奇妙な問題があります。
次のコード セグメントで
Direct X デバッグ出力は次のようになります。
私が確信していないことがいくつかあります。最後の行に D3D11 CORRUPTION が表示されますが、私は D3D10 ヘッダーとライブラリのみを使用しています。私は Visual Studio 2012 で作業しており、Windows 8 SDK がインストールされているため、問題が発生する可能性があります。
どのように進めればよいかわかりません。アドバイスをいただければ幸いです。
rendering - DirectX10 のマルチパス フォワード レンダラー
DirectX 10 でフォワード レンダラーを実装しています。後でそのパフォーマンスをディファード レンダラーと比較できるように、無制限の量のライトを処理できるようにしたいと考えています。したがって、基本的に私が使用しているアルゴリズムは次のとおりです。すべてのオブジェクト、すべてのライト -> ライトを設定し、オブジェクトを描画します。加算ブレンディングを使用して、各ライトのオブジェクトをレンダリングし、オブジェクト上のすべてのライトの影響を合計します。加算ブレンディングと深度書き込みの無効化を使用して、すべてが機能します。私が抱えている問題は、この単純なアプローチを使用すると、異なるオブジェクトが一緒にブレンドされることです (深度書き込みが無効になっているため)。一方、単一のオブジェクトを異なる光の寄与とブレンドし、その背後にある他のオブジェクトを覆い隠したいだけです。 . これどうやってするの?Zプリパスは解決策ですか? どんな提案でも大歓迎です。ありがとう。
これは、HLSL シェーダーで使用するブレンドと深度/ステンシルの状態です。
2d - 目に見えないオクルーダーのレンダリング
私は現在、DirectDrawシステム(ええ、それは非常に古いです)からDirectX10にアップグレードしています。これは2Dシステムですが、各オブジェクトの範囲/深度がメートル単位であるため、実世界をシミュレートします。最も遠いzオーダーでレンダリングおよび保持される背景画像があります。他のすべてのオブジェクトはその上に描画され、範囲/深さに応じてスケーリングされます。ただし、ポリゴンとして定義され、レンダリングが少し異なる特定のタイプのオブジェクトがあります。それは目に見えないオクルーダーとして機能します。たとえば、オクルーダーは範囲/深度が40(私の単位はメートル)で、ビューポートの中央にある5つの頂点(五角形)によって定義されます。同じビューポート位置にあるが、範囲/深度が50のスプライトオブジェクトがあります。必要な出力は、スプライトオブジェクトをレンダリングしないことです。しかし、背景は両方を通して見る必要があります。したがって、本質的に、これらは背景を遮らないことを除いて、目に見えないオクルーダーです。
注意として、オクルーダーとスプライトはすべて同じベースオブジェクトタイプから派生し、深度ソートされたコンテナで一緒に混合されます。
私のアイデアは、オクルーダーのRenderメソッドをオーバーライドして、範囲/深度の値を書き込むレンダーターゲットに描画することでした。次に、スプライトを通常どおりにレンダリングしますが、頂点シェーダーまたはピクセルシェーダーでは、スプライトの範囲値をレンダリングターゲットの範囲値と比較します。ただし、Presentが呼び出される前に、同じパスでレンダーターゲットから読み取り/書き込みを行う必要があるように思われますが、それは未定義です。オクルーダーをレンダリングし、レンダリングターゲットのバインドを解除し、他のオブジェクトによるルックアップのためにテクスチャを渡す場合は、スプライトの位置をそのテクスチャスペースに変換する必要があります。これは重要な場合があります。これらの方法のいずれかが可能ですか?
それについてもう少し考えた後、もう1つのアイデアが思い浮かびました。オクルーダーを取り、背景テクスチャを参照してテクスチャ座標を設定することができます。このようにして、背景と同じ色の値を描画します。スプライトが背後にある場合は並べ替えのため、ユーザーには「背景」が表示されますが、実際にはそのように見えるオクルーダーです。
これが質問ではなく、大声で考えている場合は申し訳ありませんが、これについての最善の方法についての印象やアイデアを入手したいと思いました。私には選択肢があるようですが、どれが最も効率的でどれが最も簡単かはわかりませんでした。ご回答ありがとうございます。
directx - nVidia HLSL サンプルをコンパイルできません - FXC タスクは CommandLineTemplate をサポートしていません
nVidia Web サイトのサンプルをコンパイルして、ソリッド ワイヤフレーム レンダリングを実行しようとしています。
http://developer.download.nvidia.com/SDK/10/direct3d/samples.html
Visual Studio 2012 で VC++ プロジェクトを開いてコンパイルすると、次のエラー メッセージが表示されます。
エラー 5 エラー MSB4064: 「CommandLineTemplate」パラメーターは「FXC」タスクではサポートされていません。パラメーターがタスクに存在し、それが設定可能なパブリック インスタンス プロパティであることを確認してください。
フレームワークまたは SDK が不足していますか? それとも、VS2012 で動作するようにこのサンプルを変更する必要がありますか?
どうもありがとう!
directx-11 - 常に D3D11_BIND_SHADER_RESOURCE と D3D11_BIND_RENDER_TARGET を使用しますか?
インデックス、頂点、定数などのより特殊なバッファーを除いて、バインド フラグ D3D11_BIND_SHADER_RESOURCE および D3D11_BIND_RENDER_TARGET を使用して標準の directx バッファーを常に定義することによるパフォーマンスの副作用またはその他の副作用はありますか?
directx - ピクセルが近距離/遠距離平面に対してクリップされないのはなぜですか
私は本当に奇妙な問題を抱えています。D3D10を使用してシーンにいくつかの三角形をレンダリングしましたが、驚くべきことに、これらのピクセルのカラー値が近距離/遠距離平面に対してクリップされていません。一方、深度値はうまくクリップされているようです。これが今説明したように機能するという証拠は次のとおりです。
- ビュー錐台の「範囲内」にあるz範囲のオブジェクトをレンダリングすると、すべてが正常になります
- 1つのオブジェクトがz範囲内にあり、もう1つがその前(カメラの目と近くの平面の間)にある場合、z範囲内のオブジェクトはより近いオブジェクトを「照らします」。したがって、Zバッファリングは完全に正常に機能しています
- また、出力VS頂点値も確認しました。z範囲外にあり、クリップする必要があるすべての頂点(および、zバッファーにはあるが、カラーバッファーにはない)のZ / W値は、[0、1]間隔の外側にあります。
アイデアアイデア何が間違っている可能性がありますか?レンダリング状態が正しく設定されていない可能性があると思いますが、どこを見ればよいのかよくわかりません。
delphi - FiremonkeyでのDirectX10のサポート(10.1ではない)
DX10.1サポートの代わりにDX10にドロップダウンすることは可能ですか?コンピューターがDX10のみをサポートしているクライアントがありますが、FMは10.1のみをサポートしているように見えるため、Direct2Dを利用できません。
DX10(FMX.Canvas.D2DおよびFMX.Context.DX10)を使用するようにソースを変更し、DX10にドロップダウンする別のスイッチを作成しようとしましたが、1つの呼び出しが失敗したようです。
共有デバイスの作成方法を変更しました
デバイスを使用しているときは、次のようなコードを使用します。
ソースにスイッチを作成して、10.1デバイスと10デバイスを切り替えることができ、FMX.Canvas.D2DとFMX.Context.DX10のすべてのコードを変更して代替デバイスを使用できるようにしました。
しかし...
CreateDxgiSurfaceRenderTargetは、エラーコード-2147024809で失敗します。
そのため、アプリは読み込まれますが、ターゲットを作成できないため、フォームはすべて空白になります。
これを助けることができる教祖はいますか?
visual-c++ - エラーLNK2019Directx10VC ++ 2010
ライブラリをセットアップした後、DirectX 2010について学習しようとしています。ライブラリのインストール方法:-VC++2010-表示-その他のウィンドウ-プロパティマネージャー
Microsoft.Cpp.Win32.user VC ++ディレクトリを開きました:-ディレクトリを含める:C:\ Program Files(x86)\ Microsoft DirectX SDK(2010年6月)\ライブラリディレクトリを含める:C:\ Program Files(x86)\ Microsoft DirectX SDK (2010年6月)\ Lib \ x64
取得したエラーリストは次のとおりです。-エラー1エラーLNK2019:関数 "long __cdecl InitDevice(void)"(? \ Projects \ CodeName_Yarab \ CodeName_Yarab \ Main.obj CodeName_Yarabエラー2エラーLNK2019:未解決の外部シンボル_D3D10CreateDeviceAndSwapChain@32が関数"long__cdecl InitDevice(void)"(?InitDevice @@ YAJXZ)c:\ Users \ ahmed_sa studio 2010 \ Projects \ CodeName_Yarab \ CodeName_Yarab \ Main.obj CodeName_Yarabエラー3エラーLNK1120:2未解決の外部c:\ users \ ahmed_saad \ document \ visual studio 2010 \ Projects \ CodeName_Yarab \ Debug \ CodeName_Yarab.exe 1 1 CodeName_Yarab
私はWindows8prox64を使用しています
directx - サンプル メソッドの複雑さ HLSL。O(1)、O(n)?
みなさんこんにちは。誰かが tex2d や DX10/11 と同等の HLSL テクスチャ サンプリング関数の複雑さを知っているかどうかを知りたかったのです。ピクセル配列のテクスチャが一定の複雑さでピクセルにアクセスする場合、UV を使用してピクセルにアクセスするため、関数の複雑さはわかりません。誰でも知っていますか?