Сэмплер HLSL внутри структуры возможно? - PullRequest
0 голосов
/ 22 февраля 2011

Я использую каркас эффектов DirectX 9.

Я хотел бы создать структуру, которая содержит сэмплер, например:

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

Однако компилятор шейдера не работает с:

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

Кажется, что идея этой относительной ссылки вроде работает, но мне нужно как-то объявить ее внутри функции, но я не уверен, как это могло бы работать, так как объявлял сэмплерывнутренние функции не работают?У кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

Я думал, что в HLSL все является типом значения.Вы знаете, какое это может иметь значение?

Каждый раз, когда вы присваиваете эту структуру какой-то другой переменной, вы делаете копию сэмплера.Существуют ограничения в языке затенения по многим параметрам, таким как количество выборок, а не только количество выборок.

0 голосов
/ 22 февраля 2011

Кажется, что неструктурные типы не поддерживаются в структурах HLSL, что является плачевным позором для моего приложения.

...