問題タブ [pixel-shader]

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

pixel-shader - 新しいバージョンの Cg コンパイラが、より多くの命令を使用してシェーダーを生成するのはなぜですか?

次のようなシェーダーがあります。

そして、私は次のようにコンパイルしています:

現在、Cg コンパイラのバージョンが異なると、異なる出力が作成されます。

  • cgc バージョン 2.2.0006 は、18 の命令を使用してシェーダーをアセンブラー コードにコンパイルしています。

    /li>
  • cgc バージョン 3.0.0016 は、23 の命令を使用してシェーダーをアセンブラー コードにコンパイルしています。

    /li>

奇妙なことに、cg 3.0 の最適化レベルは何も影響していないようです。

誰かが何が起こっているのか説明できますか? cg 3.0 でコンパイルすると、最適化が機能せず、シェーダーが長くなるのはなぜですか?

コンパイルされたシェーダーからコメントを削除したことに注意してください。

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

flash - Pixel Bender for Flash/Flex でネストされたループをエミュレートする

大きいが任意の (v1.length が v2.length である必要はない) ポイント数の 2 つのベクトルがあり、それらをペアワイズ乗算したいと考えています。これは AS3 コードの大規模なループの主なボトルネックであるため、コードを取り出して、Pixel Bender を介して非同期で実行しようと考えました。ここで、データを表すために、2 つの image2 変数を入力として使用します。

ある画像からピクセルを取得し、他の画像の各ピクセルで計算を行うにはどうすればよいですか? 私はちょうど Pixel Bender を学んでいるので、ループの回避策を見落としている可能性があります。

編集:おそらく明確にする必要があります。私がこのようなものを持っているとしましょう

これはネストされたループです。Pixel Bender でどのようにエミュレートできますか?

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

arrays - HLSLピクセルシェーダーのレンダリングターゲットとしてのTexture2D配列

現在、レンダリングパスからの2、3のテクスチャに相当するピクセルごとのデータ(法線、深度、色)が必要です。

本質的に同じシェーダー(WorldViewPos乗算など)で3つのパスを実行する代わりに、それぞれが異なるタイプのデータをレンダーターゲットのテクスチャに出力します(たとえば、色の場合は1パス、深度の場合は1パス、法線の場合は1パス)。 ); ピクセルシェーダーのレンダリングターゲットとして、Texture3Dオブジェクトまたは理想的にはTexture2D配列を使用したいと思います。そうすれば、これらの3つのレンダリングパスを1つに減らして、すべてのデータを一度に出力できます。

残念ながら、私が見つけた唯一の例は、ジオメトリシェーダーの例です。ピクセルシェーダー内にデータを送信するテクスチャ配列内のテクスチャを指定する方法はありますか?

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

directx - GPUメモリの表示/デバッグ用のTexture2Dメモリスペースの表示

実装しようとしているPixelShaderと、現在行っていることについて質問があります(これは、デバッグと理解を目的としたものです)。

ポイントは、これは常に0,0,0,1です

テクスチャバッファが作成されます:

テクスチャ(最後にライブディスプレイになるはずです)を次の方法でアップロードします。

resource.pDataを確認しました。そこにあるデータは、有効な8ビットのモノクロ画像です。カメラからのデータが8ビットモノクロ640x480であることを確認しました。

私が完全に理解していないことがいくつかあります。

  • すべてのフレームでMap/memcpy / Unmapルーチンを実行すると、ドライバーが最終的にクラッシュし、システムが応答しなくなります。フレームごとに完全なテクスチャを更新する別の方法はありますか?
  • アップロードしたテクスチャは8ビットですが、Texture2D.load()がfloat4を返すのはなぜですか?テクスチャデータにアクセスするには、別の方法を使用する必要がありますか?私はそれを.sampleしようとしましたが、それもうまくいきませんでした。代わりにintバッファなどを使用する必要がありますか?
  • GPUメモリをデバッグして、memcpyが最初に機能したかどうかを確認する方法はありますか?
0 投票する
1 に答える
315 参照

wpf - WPFのシェーダー効果を使用してCUBEおよびDOOR遷移を開発する必要があるのを支援します

シェーダー効果を使用して、WPFアプリケーションでCUBEおよびDOORトランジションを開発する必要があります。CodePlex Shaderライブラリを調べましたが、CUBEとDOORの遷移がありません。ピクセルシェーダーを初めて使用する場合、独自のシェーダーファイルを作成するための知識が限られています。ポインターやヘルプはありますか?

前もって感謝します

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

xna - スプライトへの複数の効果

ピクセル シェーダー ファイルを使用してエフェクトとトランジションを実装しました。エフェクトとトランジションを別々に適用すると正常に機能しますが、両方を同時に適用すると機能しません。スプライトに複数のシェーダーを適用する方法。以下は私がやっていることのコードです。

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

direct3d - DirectX9.0cのピクセルシェーダーで深度バッファーにアクセスする方法

DX 9.0cのピクセルシェーダー2.0を介して深度バッファーにアクセスすることは可能ですか?私は少しグーグルで調べました、そして私が見つけた唯一の解決策はGeForce6と7でのみ機能するGPUハックを説明しています。

私が達成しようとしているのは、被写界深度シェーダー効果を作成することです。他の後処理に使用されるテクスチャへのレンダリングトリックも行っているため、頂点のZ座標を単純に取得することはできません。

編集:

私はこれを試しました:

SaveTextureToFileは失敗し、シェーダーは真っ白なRGB(1、1、1)のテクスチャを取得します

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

c# - エフェクトファイルにテクスチャを設定する

シェーダーファイルでテクスチャを渡す必要がありますが、「無効な呼び出し」というエラーが発生します。私が間違っているところを教えてください?以下は私が書いたコードです。Texture以外のすべてのパラメータを設定できます。

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

math - pow(0, 2.2) は hlsl ピクセル シェーダで 1 を返しますか?

しかし、 pow(0, 2.0) は 0 を返します

float 指数は 1 になり、integer 指数は 0 になるようです。

DirectX 9 と hlsl コンパイラ「D3DCompiler_43.dll」を使用しています。Nvidia と Ati カードでそれを確認しました。

私は混乱しています!それはある種の既知の動作またはバグですか?

効果を説明するために、次の簡単なテスト シェーダーを試してください。

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

wpf - 任意の四角形にテクスチャを投影するピクセル シェーダー

ピクセル シェーダーを使用して、任意のユーザー定義の四角形にテクスチャを投影する方法を見つけ出す必要があります。

四角形の 4 辺の座標を受け入れます。

いくつかの補間アルゴリズムを試しましたが、うまくいきませんでした。

希望する結果を得るために変更できると思われるサンプルはありますか?