dcl _ input _ sv (sm4 - asm)

Deklariert ein Shadereingaberegister, das erwartet, dass ein Systemwert aus einer vorherigen Phase bereitgestellt wird.

dcl _ input sv v _ N [ .mask ], systemValueName [ , interpolationMode ]
Element BESCHREIBUNG
vN[.mask]
[in] Ein Scheitelpunktdatenregister.
  • N ist eine ganze Zahl, die die Registernummer identifiziert.
  • [.mask] ist eine optionale Komponentenmaske (.xyzw), die angibt, welche der Registerkomponenten verwendet werden soll.
systemValueName
[in] Der Systemwertname, bei dem es sich um eine Zeichenfolge handelt (siehe Systemwertsemantik),ohne das Präfix "SV_".
Interpolationmode
[in] Optional. Der Interpolationsmodus, der sich darauf auswirkt, wie Werte während der Rasterung berechnet werden. der Modus wird nur von einem Pixel-Shader verwendet. Es kann sich um einen der folgenden Werte handeln:
  • constant: Interpolieren Sie nicht zwischen Registerwerten.
  • linear: Interpolieren Sie linear zwischen Registerwerten.
  • linearCentroid: entspricht dem linearen, aber beim Multisampling mit Einem Schwerpunkt verknüpften Schwerpunkt.
  • linearNoperspective – identisch mit linear, aber ohne perspektivische Korrektur.
  • linearNoperspectiveCentroid– identisch mit linear, aber ohne perspektivische Korrektur und Schwerpunkt beim Multisampling.

Eine Komponentenmaske für eine Systemwertdeklaration kann eine geeignete Teilmenge von [ xyzw ] sein. Deklarationen dürfen sich nicht überlappen (jede Deklaration muss der Sequenz xyzw folgen). Beim Deklarieren von skalaren Systemwerten (z. B. Clip distance und cull distance) können Sie mehrere Systemwerte in einem einzigen Register deklarieren. Stellen Sie in diesem Fall sicher, dass andere Modifizierer wie die Interpolationsmodi übereinstimmen.

Diese Anweisung gilt für die folgenden Shaderstufen:

Vertexshader Geometrie-Shader Pixelshader
x x x

Diese Anweisung ist enthalten, um das Debuggen eines Shaders in der Assembly zu unterstützen. Sie können keinen Shader in der Assemblysprache mit shader Model 4 erstellen.

Beispiel

Im Folgenden finden Sie einige Beispiele:

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

Shader-Mindestmodell

Diese Funktion wird in den folgenden Shadermodellen unterstützt.

Shadermodell Unterstützt
Shadermodell 5 Ja
Shadermodell 4.1 Ja
Shadermodell 4 Ja
Shadermodell 3 (DirectX HLSL) Nein
Shadermodell 2 (DirectX HLSL) Nein
Shadermodell 1 (DirectX HLSL) Nein

Shadermodell 4-Assembly (DirectX HLSL)