gather4 (sm4.1 – asm)

Erfasst die vier Texel, die in einem bilinearen Filtervorgang verwendet werden, und packt sie in ein einziges Register.

gather4 [ _ aoffimmi(u,v) ] dest [ .mask ] , srcAddress [ .swizzle ] , srcResource [ .swizzle ] srcSampler.r
Element BESCHREIBUNG
Dest
[in ] Die Adresse des Ergebnisses des Vorgangs.
srcAddress
[in ] Enthält die Texturkoordinaten.
srcResource
[in ] Einem Ressourcenregister.
Die Swizzle ermöglicht es, die zurückgegebenen Werte willkürlich zu wischen, bevor sie in dest geschrieben werden.
srcSampler
[in ] einem Samplerregister.
Dieser Parameter muss eine R-Swizzle (rot) aufweisen, die angibt, dass der Wert des R-Kanals in dest kopiert wird.

Bemerkungen

Dieser Vorgang funktioniert nur mit single channel 2D- oder CubeMap-Texturen. Für 2D-Texturen werden nur die Adressierungsmodi des Samplers verwendet, und die oberste Ebene einer Mip-Pyramide wird verwendet.

Diese Anweisung verhält sich wie die Beispielanweisung, aber es wird kein gefiltertes Beispiel generiert. Die vier Beispiele, die zur Filterung beitragen würden, werden im Uhrzeigersinn in xyzw platziert, beginnend mit der Stichprobe links unten am abgefragten Speicherort. Dies entspricht der Punktsampling mit (u,v) Texturkoordinatendelta an den folgenden Stellen: (-,+),(+,+),(+,-),(-,-), wobei die Größe der Deltas immer ein halbes Texel ist.

Für CubeMap-Texturen, wenn ein bilinearer Fußabdruck ein Edge-Texel vom benachbarten Gesicht umfasst, werden verwendet. Ecken verwenden die gleichen Regeln wie die Beispielanweisung. Dies ist die unpräzische Ecke, die als Durchschnitt der drei einprägenden Gesichtsecken betrachtet wird.

Die Texturformateinschränkungen, die für die Beispielanweisungen gelten, gelten auch für die gather4-Anweisung.

Bei Hardwareimplementierungen können Optimierungen bei herkömmlicher bilinearer Filterung, die Stichproben direkt auf Texel erkennen und das Lesen von Texel überspringen, die gewicht 0 haben würden, nicht mit gather4 genutzt werden. gather4 gibt immer alle angeforderten Texel zurück.

Diese Anweisung gilt für die folgenden Shaderstufen:

Vertexshader Geometrie-Shader Pixelshader
x x x

Shader-Mindestmodell

Diese Funktion wird in den folgenden Shadermodellen unterstützt.

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

Shadermodell 4-Assembly (DirectX HLSL)