Поделиться через


Сэмплер (Direct3D 9 asm-ps)

Семплер — это входной псевдорегистр для пиксельного шейдера, который используется для идентификации этапа семплирования. Существует 16 регистров этапов выборки пиксельного шейдера: от s0 до s15. Поэтому до 16 поверхностей текстур можно считывать в одном проходе шейдера. Инструкции, использующие регистр выборки, это texld и texldp.

Образец должен быть объявлен перед использованием с dcl_samplerType (sm2, sm3 - ps asm) инструкции.

Версии шейдера пикселей 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Пробоотборник x x x x x

 

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

Единица выборки соответствует стадии выборки текстуры, инкапсулируя специфическое для выборки состояние, предоставленное SetSamplerState. Каждый сэмплер однозначно идентифицирует одну поверхность текстуры, которая задается соответствующему сэмплеру с помощью SetTexture. Однако одна и та же поверхность текстуры может быть задана в нескольких образцах.

Во время рисования текстура не может быть одновременно задана как предназначение рендеринга и в качестве текстуры на этапе.

В качестве единственного аргумента в команде загрузки текстуры может отображаться сэмплер: texldl - ps.

В ps_3_0, если используется образец, его необходимо объявить в начале программы шейдера с помощью инструкции dcl_samplerType (sm2, sm3 - ps asm).

Выборка текстуры с более высокой размерностью, чем присутствует в координатах текстуры, является недопустимой. Выборка текстуры с меньшим измерением, чем присутствует в координатах текстуры, будет игнорировать дополнительные координаты текстуры.

регистры