Share via


gather4 (sm4.1 – asm)

Erfasst die vier Texel, die in einem bilinearen Filtervorgang verwendet würden, und packt sie in ein einzelnes 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] Ein Ressourcenregister.
Der Swizzle ermöglicht es, die zurückgegebenen Werte beliebig zu schwenken, bevor sie in dest geschrieben werden.
srcSampler
[in] Ein Samplerregister.
Dieser Parameter muss eine .r (rote) Swizzle aufweisen, die angibt, dass der Wert des R-Kanals in dest kopiert wird.

Hinweise

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

Diese Anweisung verhält sich wie die Beispielanweisung , aber ein gefiltertes Beispiel wird nicht generiert. Die vier Beispiele, die zur Filterung beitragen würden, werden in xyzw in entgegengesetzter Reihenfolge platziert, beginnend mit dem Beispiel unten links neben der abgefragten Position. Dies ist identisch mit der Punktentnahme mit (u,v) Texturkoordinatendeltas an den folgenden Stellen: (-,+,+),(+,-),(-,-), wobei die Größe der Deltas immer einen halben Texel aufweist.

Für CubeMap-Texturen, wenn ein bilinearer Fußabdruck einen Rand texels von der benachbarten Fläche überspannt, werden verwendet. Ecken verwenden die gleichen Regeln wie die Beispielanweisung . die ungewunde Ecke wird als Durchschnitt der drei einschneidenden Gesichtsecken betrachtet.

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

Für Hardwareimplementierungen können Optimierungen in der herkömmlichen bilinearen Filterung, die Stichproben direkt auf Texels erkennen und das Lesen von Texels, die gewichten 0 hätten, nicht mit gather4 genutzt werden. gather4 gibt immer alle angeforderten texels zurück.

Diese Anweisung gilt für die folgenden Shaderphasen:

Vertexshader Geometrie-Shader Pixelshader
x x x

Minimales Shadermodell

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)