Sampler (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).

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

Регистры