Compartir a través de


dcl_input_sv (sm4 - asm)

Declara un registro de entrada de sombreador que espera que se proporcione un valor del sistema desde una fase anterior.

dcl_input_sv vN[.mask], systemValueName[, interpolationMode]
Elemento Descripción
vN
[in] Registro de datos de vértices.
  • N es un entero que identifica el número de registro.
  • [.mask] es una máscara de componente opcional (.xyzw) que especifica cuál de los componentes de registro se van a usar.
systemValueName
[in] Nombre del valor del sistema que es una cadena (consulte la semántica del valor del sistema) sin el prefijo "SV_".
interpolationMode
[in] Opcional. Modo de interpolación que afecta a cómo se calculan los valores durante la rasterización; el modo solo lo usa un sombreador de píxeles. Puede ser uno de los siguientes valores:
  • constant: no interpola entre los valores de registro.
  • linear: interpola linealmente entre los valores de registro.
  • linearCentroid: igual que lineal pero centroide sujeta cuando se realiza un muestreo múltiple.
  • linearNoperspective: igual que lineal pero sin corrección de perspectiva.
  • linearNoperspectiveCentroid: igual que lineal, pero sin corrección de perspectiva y centroide sujeta cuando se realiza un muestreo múltiple.

Una máscara de componente para una declaración de valor del sistema puede ser cualquier subconjunto adecuado de [xyzw]; Es posible que las declaraciones no se superpongan (cada declaración debe seguir la secuencia xyzw). Al declarar valores escalares del sistema (distancia de recorte y distancia de selección, por ejemplo), puede declarar varios valores del sistema en un único registro. Si lo hace, asegúrese de que otros modificadores, como los modos de interpolación, coinciden.

Esta instrucción se aplica a las siguientes fases del sombreador:

Sombreador de vértices Sombreador de geometría Sombreador de píxeles
x x x

Esta instrucción se incluye para ayudar a depurar un sombreador en el ensamblado; no se puede crear un sombreador en el lenguaje de ensamblado mediante el modelo de sombreador 4.

Ejemplo

Estos son algunos ejemplos:

// 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

Modelo de sombreador mínimo

Esta función se admite en los siguientes modelos de sombreador.

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1
Modelo de sombreador 4
Modelo de sombreador 3 (DirectX HLSL) No
Modelo de sombreador 2 (DirectX HLSL) No
Modelo de sombreador 1 (DirectX HLSL) No

Ensamblado del modelo de sombreador 4 (DirectX HLSL)