текслдб-PS

Инструкция по загрузке смещенной текстуры. В этой инструкции используется четвертый элемент (. a или. w) для смещения уровня детализации для выборки текстуры непосредственно перед выборкой.

Синтаксис

текслдб DST, src0, src1

Где:

  • DST — это регистр назначения.
  • src0 — это исходный регистр, предоставляющий координаты текстуры для образца текстуры. См. раздел регистрация координат текстуры.
  • src1 определяет образец (Direct3D 9 ASM-PS) # , где # указывает, какой номер образца текстуры следует вычислить. Этот образец связан с текстурой и состоянием выборки, определенным в D3DSAMPLERSTATETYPE.

Ограничения при использовании текслдб см. в описании инструкций текслд-PS _ 2 _ 0 и up .

PS _ 2 _ 0 и PS _ 2 _ x

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

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

src1 должны быть образцами (Direct3D 9 ASM-PS) без # модификатора или свиззле.

Если _ _ бит крепления D3DD3DPSHADERCAPS2 0 нодепендентреадлимит не установлен (в D3DPSHADERCAPS2 _ 0), данная инструкция текстуры (текслд, текслдп, текслдб, текслдд) может быть зависеть от третьего порядка. Инструкция текстуры, зависимая от первого порядка, представляет собой текстурную инструкцию, в которой одно из следующих:

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

PS _ 3 _ 0

src1 должны быть образцами (Direct3D 9 ASM-PS) без # модификатора. Свиззле разрешено для src1, и при применении результаты поиска текстур предварительно свиззлед перед записью в летнее время.

Комментарии

Версии шейдеров пикселей 1_1 1_2 1 _ 3 1_4 2 _ 0 2 _ x 2 _ SW 3 _ 0 3 _ SW
текслдб x x x x x

текслдб отменяет уровень детализации mipmap, вычисленный обычным образом как часть примера процесса с помощью значения (со знаком) в src0. w. Положительные значения смещения приведут к тому, что выбирается меньшая MIP-карты, и наоборот. Для PS _ 2 _ 0 и PS _ 2 _ x значения смещения могут находиться в диапазоне от [ -3,0, + 3,0 ] . Для PS _ 3 _ 0 значения смещения могут находиться в диапазоне от [ -16,0, + 15,0 ] . Значения смещения за пределами этих диапазонов приводят к неопределенным результатам. Состояние образца D3DSAMP _ мипмаплодбиас по-прежнему соблюдается, а к нему добавляется сдвиг текслдб, но для каждого пикселя. После того как пересмещенный уровень детализации будет вычислен, D3DSAMP _ максмиплевел по-прежнему соблюдается и выполняется образец текстуры. После текслдб содержимое src0 не изменяется (если только DST не является одним и тем же регистром).

Количество координат, необходимых для выполнения образца текстуры для src0, зависит от того, как был объявлен src1, а также от компонента. w. Типы образцов объявляются с помощью дкл _ самплертипе (SM2, SM3-PS ASM). Если src1 объявлен как 2D-образец, src0 должен содержать координаты. ксив; Если src1 объявляется как образец куба или как образец тома, src0 должен содержать координаты. ксизв. Допускается выборка двухмерной текстуры с помощью координат. ксизв (координата. z игнорируется).

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

Формат текстуры Значения по умолчанию
D3DFMT _ R5G6B5, D3DFMT _ R8G8B8, D3DFMT _ 8, 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

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