texld — ps_2_0 и более

Выборка текстуры в определенном средстве выборки с использованием предоставленных координат текстуры. Эта инструкция отличается от инструкции texld — ps_1_4, используемой в пиксельном шейдере версии 1_4.

Синтаксис

texld dst, src0, src1

 

Где:

  • dst является регистром назначения.
  • src0 — это регистр источника, предоставляющий координаты текстуры для образца текстуры.
  • src1 определяет sampler (Direct3D 9 asm-ps) (s#), где # указывает номер выборки текстуры для выборки. Средство выборки связывает с ним текстуру и состояние выборки, определенное D3DSAMPLERSTATETYPE.

ps_2_0 и ps_2_x

dst должен быть временным регистром (r#), и разрешена только маска .xyzw (маска по умолчанию).

src0 должен быть регистром координат текстуры (t#) или временным регистром (r#) без модификатора или swizzle.

src1 должен быть sampler (Direct3D 9 asm-ps) (s#) без модификатора или swizzle.

Если бит ограничения D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT не задан (в D3DPSHADERCAPS2_0), указанная инструкция текстуры (texld, texldp, texldb - ps, texldd ) может зависеть не более чем от третьего порядка. Зависимая инструкция текстуры первого порядка — это инструкция текстуры, в которой:

Зависимая инструкция текстуры второго порядка определяется как инструкция текстуры, которая считывает или записывает во временный регистр (r#), содержимое которого перед выполнением инструкции текстуры зависит (возможно, косвенно) от результата инструкции зависимой текстуры первого порядка. Зависимая инструкция текстуры (n)-го порядка является производным от инструкции текстуры (n –1)го порядка.

ps_3_0

src1 должен быть sampler (Direct3D 9 asm-ps) (s#) без модификатора. Swizzle разрешено в src0 или src1. Поворот применяется к координатам текстуры перед поиском текстуры.

Комментарии

Эта инструкция поддерживается в следующих версиях:

Версии шейдера пикселей 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texld x x x x x

 

Количество координат, необходимых src0 для выполнения образца текстуры, зависит от того, как был объявлен src1, а также от компонента .w. Типы выборки объявляются с dcl_samplerType (sm2, sm3 — ps asm). Если src1 объявлен как двухмерный выборщик, то src0 должен содержать координаты XY; Если src1 объявлен как средство выборки кубов или томов, то src0 должен содержать координаты XYZ. Выборка текстуры с меньшими размерами, чем в координате текстуры, разрешена, так как дополнительные компоненты координат текстуры игнорируются.

Если исходная текстура содержит менее четырех компонентов, значения по умолчанию помещаются в отсутствующие компоненты. Значения по умолчанию зависят от формата текстуры, как показано в следующей таблице:

Формат текстуры Значения по умолчанию
D3DFMT_R5G6B5, D3DFMT_R8G8B8, D3DFMT_L8, D3DFMT_L16, D3DFMT_R3G3B2, D3DFMT_CxV8U8, D3DFMT_L6V5U5 A = 1,0
D3DFMT_V8U8, D3DFMT_V16U16, D3DFMT_G16R16, D3DFMT_G16R16F, D3DFMT_G32R32F B = A = 1,0
D3DFMT_A8 R = G = B = 0,0
D3DFMT_R16F, D3DFMT_R32F G = B = A = 1,0
Все форматы глубины и набора элементов R = B = 0,0, A = 1,0

 

Инструкции по шейдеру пикселей