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).
Выборка текстуры с более высоким размером, чем в координатах текстуры, является недопустимой. Выборка текстуры с меньшим размером, чем в координатах текстуры, будет игнорировать дополнительные координаты текстуры.
Связанные темы