gather4_c (sm5 - asm)
Identisch mit gather4, außer dieser Anweisung führt Vergleiche auf Texel aus, ähnlich wie sample\_c.
gather4_c[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.r], srcReferenceValue |
---|
Element | Beschreibung |
---|---|
dest |
[in] Die Adresse des Ergebnisses des Vorgangs |
srcAddress |
[in] Eine Reihe von Texturkoordinaten. |
srcResource |
[in] Ein Texturregister. |
srcSampler |
[in] Ein Samplerregister. |
srcReferenceValue |
[in] Ein Register mit einer einzelnen ausgewählten Komponente, die im Vergleich verwendet wird. |
Hinweise
Eine Beschreibung, wie srcReferenceValue mit jedem abgerufenen Texel verglichen wird, finden Sie unter sample_c. Im Gegensatz zu sample_c gibt gather4_c alle Vergleichsergebnisse zurück, anstatt sie zu filtern. Die Reihenfolge der Vorgänge lautet srcReferenceValue {ComparisonFunction} texel.R
.
Bei TextureCube-Ecken, bei denen drei echte Texel vorhanden sind und ein viertes synthetisiert werden muss, muss die Synthese nach dem Vergleichsschritt erfolgen. Das bedeutet, dass das zurückgegebene Vergleichsergebnis für das synthetisierte Texel 0, 0,33 , 0,66 oder 1 sein kann. Einige Implementierungen können nur 0 oder 1 für das synthetisierte Texel zurückgeben. Abgesehen von dieser Auflistung möglicher Ergebnisse ist die Methode zur Synthese des Texels nicht spezifiziert.
Bei Formaten mit Float32-Komponenten wird der abzurufende Wert, wenn er normalisiert oder +-INF ist, bei der Vergleichsoperation unverändert verwendet. NaN wird im Vergleichsvorgang als NaN verwendet, aber die genaue Bitdarstellung des NaN kann geändert werden. Die Denorms werden im Vergleich auf Null geleert. Bei TextureCubes muss das fehlende 4. Texel an den Ecken synthetisiert werden, so dass die Idee, die Bits für das synthetisierte Texel unverändert zurückzugeben, nicht greift.
Formate, die für gather4_c unterstützt werden, entsprechen denen, die für sample_c unterstützt werden. Es handelt sich dabei um Einzelkomponentenformate, daher das .R auf srcSampler, und nicht um einen beliebigen Swizzle. gather4_c für eine ungebundene Ressource gibt 0 zurück.
Verwenden Sie diese Anweisung für die benutzerdefinierte Schattenzuordnungsfilterung.
Diese Anweisung gilt für die folgenden Shaderphasen:
Scheitelpunkt | Hull | Domäne | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Minimales Shadermodell
Diese Anweisung wird in den folgenden Shadermodellen unterstützt:
Shadermodell | Unterstützt |
---|---|
Shadermodell 5 | ja |
Shadermodell 4.1 | Nein |
Shadermodell 4 | Nein |
Shader Model 3 (DirectX HLSL) | Nein |
Shader Model 2 (DirectX HLSL) | Nein |
Shadermodell 1 (DirectX HLSL) | Nein |