Compartilhar via


dcl_input_sv (sm4 – asm)

Declara um registro de entrada de sombreador que espera que um valor do sistema seja fornecido de um estágio anterior.

dcl_input_sv vN[.mask], systemValueName[, interpolationMode]
Item Descrição
vN
[in] Um registro de dados de vértice.
  • N é um inteiro que identifica o número do registro.
  • [.mask] é uma máscara de componente opcional (.xyzw) que especifica qual dos componentes de registro usar.
systemValueName
[in] O nome do valor do sistema que é uma cadeia de caracteres (consulte semântica de valor do sistema) sem o prefixo "SV_".
Interpolationmode
[in] Opcional. O modo de interpolação que afeta como os valores são calculados durante a rasterização; o modo só é usado por um sombreador de pixel. Pode ser um dos seguintes valores:
  • constante – não interpole entre valores de registro.
  • linear – interpolar linearmente entre valores de registro.
  • linearCentroid - o mesmo que linear, mas centroide fixado quando multisampling.
  • linearNoperspective - o mesmo que linear, mas sem correção de perspectiva.
  • linearNoperspectiveCentroid - o mesmo que linear, mas sem correção de perspectiva e centroide fixado quando multisampling.

Uma máscara de componente para uma declaração de valor do sistema pode ser qualquer subconjunto apropriado de [xyzw]; as declarações podem não se sobrepor (cada declaração deve seguir a sequência xyzw). Ao declarar valores escalares do sistema (distância de transferência e distância de corte, por exemplo), você pode declarar vários valores do sistema em um único registro. Se você fizer isso, verifique se outros modificadores, como os modos de interpolação, correspondem.

Esta instrução se aplica aos seguintes estágios de sombreador:

Sombreador de vértice Sombreador de geometria Sombreador de pixel
x x x

Esta instrução é incluída para auxiliar na depuração de um sombreador no assembly; não é possível criar um sombreador na linguagem de assembly usando o Modelo de Sombreador 4.

Exemplo

Estes são alguns exemplos:

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

Essa função tem suporte nos seguintes modelos de sombreador.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 sim
Modelo de sombreador 4.1 sim
Modelo de sombreador 4 sim
Modelo de Sombreador 3 (DirectX HLSL) não
Modelo de Sombreador 2 (DirectX HLSL) não
Modelo de Sombreador 1 (DirectX HLSL) não

Assembly do Modelo de Sombreador 4 (DirectX HLSL)