0

DirectX 9 エフェクト フレームワークを使用しています。

次のようなサンプラーを含む構造体を作成したいと思います。

struct Test
{
    texture tex;
    sampler texSamp = sampler_state
    {
        Texture = <tex>;
    };
};

ただし、シェーダー コンパイラは次のエラーで失敗します。

internal error: this-relative Test::tex 'tex' found outsideof function scope

this-relative 参照のアイデアは機能しているようですが、関数内で何らかの方法で宣言する必要がありますが、関数内でサンプラーを宣言すると機能しないため、どのように機能するかわかりませんか? 誰にもアイデアはありますか?

4

2 に答える 2

1

HLSLではすべてが値型ですが。これがどのような意味を持つか知っていますか?

この構造体を他の変数に割り当てるたびに、サンプラーのコピーを作成します。サンプラーの数だけでなく、サンプリングの数など、多くのシェーディング言語には制限があります。

于 2011-04-30T14:36:46.593 に答える
0

非数値型はHLSL構造体内ではサポートされていないようです。これは、私のアプリケーションにとって非常に残念なことです。

于 2011-02-22T11:23:07.240 に答える