問題タブ [hlsl]
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.
compiler-construction - HLSLコンパイラエラー?
それは私のピクセルシェーダーの一部です。コンパイラエラーがあるのはなぜですか?私はそれをコンパイルps_3_0.
せずmul()
にコンパイルしています。
math - 行列の乗算 - ビュー/投影、ワールド/投影など
HLSL には多くの行列乗算があり、それらをどこでどのように使用するかは理解していますが、それらがどのように導出されたのか、または実際の目標が何であるかについてはわかりません。
だから、これを説明するリソースがオンラインにあるかどうか疑問に思っていました.world行列にview行列を掛け、world + view行列に射影行列を掛ける目的は何なのか、特に興味があります.
directx - さまざまな HLSL サンプラーの種類は何ですか?
私は現在 DX9/SM3 を使用していますが、HLSL サンプラーに関する MSDN ドキュメントには、さまざまなサンプラー タイプの使用方法の説明が非常に不足しているようです。さらに悪いことに、彼らは DX9 と DX10 を 1 つの記事でカバーしようとしているため、すべてのキーワードがごちゃまぜになっています。
sampler Name = SamplerType { Texture = < texture_variable >; [状態名=状態値;] ... };
...
サンプラーの種類
[in] 次のいずれかであるサンプラーの種類: sampler、sampler1D、sampler2D、sampler3D、samplerCUBE、sampler_state、SamplerState。
Direct3D 9 と Direct3D 10 の違い:
Direct3D 10 は、1 つの追加のサンプラー タイプをサポートします: SamplerComparisonState。
この書き込みに反して、SamplerState
DX10のみのような気がします。私が目にする事実上すべてのコードは、 SamplerType を使用sampler_state
しています。BasicHLSL (DX9) からの簡単な例:
sampler
さまざまな_SamplerType_s がすべて存在するのはなぜsampler2D
ですかsampler_state
。とにかくフェッチするときは明示的である必要があります。たとえばtex2D
、texCUBE
、では、ここで何が起こっているのでしょうか?
directx - HLSL ループ/サンプリングの問題
次のようなHLSLコードがあります。
私が得ている結果は、そのループが 1 回だけ実行されることと一致しています。PIX でシェーダーを確認したところ、事態はさらに奇妙になりました。コード内の位置を示す黄色の矢印がループに到達し、ループを 1 回通過して最初に戻り、その時点で黄色の矢印は二度と移動しませんが、カーソルはコードを移動して結果を返します (PIX のバグか、単に使い方が間違っているのでしょうか?)
これは、コンパイラによってループの外に移動されたテクスチャ読み取りに関係する問題である可能性があるのではないかと疑っていますが、LOD を手動で設定しているため、tex2Dlod では発生しないと思いました:/
そう:
1) 問題は何ですか?
2) 提案された解決策はありますか?
directx - CPU 上のジオメトリ シェーダーからの出力の読み取り
ストリーム出力を使用してバッファーに出力するジオメトリ シェーダーから出力を読み取ろうとしています。
ジオメトリ シェーダーで使用される出力バッファーは、次のように記述されます。
ジオメトリ シェーダーは、1 つのポイントに基づいて多数の三角形を作成します (ポイントごとに最大 12 個の三角形)。SDK を正しく理解していれば、CPU 上のジオメトリ シェーダーからの出力を読み取るために、ステージング リソースを作成する必要があります。
次のように別のバッファー リソースを宣言しました (今回は STAGING フラグを設定します)。
アプリケーションの最初の描画呼び出しの後、ジオメトリ シェーダーはすべての三角形の作成を完了し、描画できるようになります。ただし、この最初の描画呼び出しの後、ジオメトリ シェーダーによって出力された頂点を読み取れるようにしたいと考えています。
バッファステージングリソースを使用して、次のようにしようとしています(最初の描画呼び出しの直後):
これはコンパイルされ、実行時にエラーは発生しません。ただし、出力が得られていないようです。
ジオメトリ シェーダーは次を出力します。
VERTEX_STREAMOUT は次のように宣言されます。
ここで何か不足していますか?
flash - ピクセルベンダー(Flashの場合)とピクセルシェーダー(Silverlightの場合)の比較
プログラミングの柔軟性と実行時のパフォーマンスの観点から、FlashのPixelBenderとSilverlightのPixelShader(HLSL)の違いを誰かが説明できますか?
shader - HLSL ピクセル シェーダー - 特定の色相の画像の色を変更する
入力画像を取得し、1 つの色相範囲 (つまり HSV) のすべての色を別の色相範囲に変換するピクセル シェーダーを作成したいと考えています。
私の動機は単純です。さまざまなテクスチャの束を別々に色付けしたいのですが、テクスチャ全体ではなく、特定の範囲の色相を持つ部分だけを色付けしたいと考えています。そうすれば、レーシング カーのイメージを 1 つ描画してから、ピクセル シェーダーを使用して車のストライプとロゴの色だけを変更できます。
HLSL のドキュメントをオンラインで調べたところ、色相を扱うものは見つかりませんでした。オンラインで入手できる HLSL コードのライブラリはありますか?
私が達成しようとしているものの擬似コードは次のとおりです。
その情報が誰にとっても重要な場合、私は XNA Game Studio を使用しています。
directx - ワールドスペースの法線マップを考えると、エッジを見つけるための適切なアルゴリズムは何ですか?
通常のシーンの頂点法線がワールド空間のテクスチャに色として表示されている場合、エッジを効率的に計算する方法はありますか、それとも数学的に不可能ですか?ビュー空間に法線があればエッジを計算できることは知っていますが、ワールド空間に法線があれば計算できるかどうかはわかりません(過去の方法を模索してきました)時間..)
HLSLでDirectXを使用しています。
c++ - [0.5-1]から[0-1]への正規化
私はここでちょっと立ち往生しています、私はそれが少し頭の体操だと思います。0.5から1の範囲の数値がある場合、0から1の範囲に正規化するにはどうすればよいですか?
助けてくれてありがとう、たぶん私は過去24時間ずっとO_Oで働いていたので、少し遅いかもしれません
directx - directx ピクセル/頂点シェーダーをデバッグしていますか?
DirectX でピクセル シェーダーと頂点シェーダーをデバッグする方法を見つけようとしています。Windows 用の Pix を使用してみましたが、非常にバグが多く、実質的に操作できないことがわかりました。自分のアプリケーション内でこれらのシェーダーをデバッグできる代替手段はありますか?