1

私はGLSLを初めて使用しますが、画像処理用のフラグメントシェーダーで畳み込みカーネルを作成しようとしています。カーネルが小さい場合(3x3)、定数行列を使用してこれをうまく行うことができました。ただし、ここでは、サイズ9x9のカーネルを使用したいと思います。または、任意のサイズの問題について。私の最初の考えは、畳み込みカーネルを含むテクスチャメモリをセットアップすることでした。次に、2Dsamplerを使用して、カーネルのテクスチャメモリを読み取り、それを画像のテクスチャメモリ(これも2Dsampler)と畳み込みます。これはこれについて行く正しい方法ですか?

係数を含む任意のサイズの配列を作成することもできると思います。これは81の係数で機能する可能性がありますが、もっと大きなものが必要な場合はどうなりますか?20x20と言うように?

一般に、GLSLで複数の大きなオブジェクトにアクセスする必要がある場合、適切な戦略は何ですか?ありがとう!ありがとう、

D

4

2 に答える 2

1

シーケンシャルアクセス:

  1. 頂点属性

ランダムアクセス:

  1. テクスチャバッファ/ソースがバッファの場合は均一ブロック
  2. ソースが小さい場合はユニフォーム
  3. それ以外のテクスチャ
于 2011-03-07T12:45:48.663 に答える
0

はい、均一で一定のスペースが限られているため、代わりにテクスチャを使用することをお勧めします。

于 2011-03-07T11:51:58.037 に答える