dcl_input_sv (sm4 - asm)

Объявляет регистр входных данных шейдера, который ожидает , что системное значение будет предоставлено на предыдущем этапе.

dcl_input_sv vN[.mask], systemValueName[, interpolationMode]
Элемент Описание
VN
[in] Регистр данных вершин.
  • N — это целое число, идентифицирующее регистровое число.
  • [.mask] — это необязательная маска компонента (.xyzw), указывающая, какой из компонентов регистра следует использовать.
systemValueName
[in] Имя системного значения, представляющее собой строку (см. семантику системного значения) без префикса "SV_".
интерполяцияMode
[в] Необязательно. Режим интерполяции, который влияет на способ вычисления значений во время растеризации; режим используется только пиксельным шейдером. Может иметь одно из следующих значений.
  • constant — не выполняет интерполяцию между значениями регистра.
  • linear — линейная интерполяция значений регистра.
  • linearCentroid — то же, что и линейный, но центроид зажат при множественной выборке.
  • linearNoperspective — то же, что и линейный, но без коррекции перспективы.
  • linearNoperspectiveCentroid — то же, что и линейный, но без коррекции перспективы и центроид зажат при множественной выборке.

Маска компонента для объявления системного значения может быть любым соответствующим подмножеством [xyzw]; объявления не могут перекрываться (каждое объявление должно соответствовать последовательности xyzw). При объявлении скалярных системных значений (например, расстояние клипа и расстояние отсечения) можно объявить несколько системных значений в одном регистре. В этом случае убедитесь, что другие модификаторы, такие как режимы интерполяции, соответствуют.

Эта инструкция применяется к следующим этапам шейдера:

Вершинный построитель текстуры Шейдер геометрии Построитель текстуры
x x x

Эта инструкция содержится для упрощения отладки шейдера в сборке; вы не можете создать шейдер на языке ассемблера с помощью модели шейдера 4.

Пример

Ниже приведено несколько примеров.

// valid
dcl_input v0.y, linear
dcl_input_sv v0.w, clipDistance
dcl_input_sv v0.z, cullDistance
// invalid declarations
dcl_input v0.y, linear
dcl_input_sv v0.x, clipDistance  // the y component was previously declared, this declaration must use 
                                 // either the z or w component

dcl_input v0.y, linearNoPerspective                  // the interpolation mode is linear-no-perspective
dcl_input_sv v0.z, renderTargetArrayIndex, constant  // the interpolation modes is constant
                                                     // the interpolation modes must match

Минимальная модель шейдера

Эта функция поддерживается в следующих моделях шейдеров.

Модель шейдера Поддерживается
Модель шейдера 5 да
Модель шейдера 4.1 да
Модель шейдера 4 да
Модель шейдера 3 (DirectX HLSL) нет
Модель шейдера 2 (DirectX HLSL) нет
Модель шейдера 1 (DirectX HLSL) нет

Сборка шейдера модели 4 (DirectX HLSL)