exemple _ c (SM4-ASM)
Effectue un filtre de comparaison.
| exemple _ c [ _ aoffimmi (u, v, w) ] dest [ . Mask ] , srcAddress [ . Swizzle ] , srcResource. r,//doit être. r Swizzle srcSampler, srcReferenceValue//composant unique sélectionné |
|---|
| Élément | Description |
|---|---|
| dest |
[dans ] l’adresse des résultats de l’opération. |
| srcAddress |
[dans ] un ensemble de coordonnées de texture. Pour plus d’informations, consultez l' exemple d’instruction. |
| srcResource |
[dans ] un registre de texture. Pour plus d’informations, consultez l' exemple d’instruction. |
| srcSampler |
[dans ] un registre d’échantillonneur. Pour plus d’informations, consultez l' exemple d’instruction. |
| srcReferenceValue |
[dans ] un registre avec un seul composant sélectionné, qui est utilisé dans la comparaison. |
Notes
L’objectif principal de cette instruction est de fournir un bloc de construction pour Percentage-Closer le filtrage de profondeur. Le « c » dans l' exemple _ c représente la comparaison.
Les opérandes de l' exemple _ c sont identiques à ceux de l' exemple d’instruction, à ceci près qu’il existe un opérande source float32 supplémentaire, srcReferenceValue, qui doit être un registre avec un composant unique sélectionné ou un littéral scalaire.
Le paramètre srcResource doit avoir un. r (rouge) Swizzle. l' exemple _ c fonctionne exclusivement sur le composant rouge et retourne une valeur unique. Le. r Swizzle sur srcResource indique que le résultat scalaire est répliqué sur tous les composants.
Quand une mémoire tampon de profondeur est définie en tant que texture d’entrée, la valeur de profondeur s’affiche dans le composant rouge.
Si cette instruction est utilisée avec une ressource qui n’est pas un Texture1D/2D/2DArray/cube/CubeArray, elle produit des résultats non définis.
Lorsque cette instruction est exécutée, le matériel d’échantillonnage utilise le ComparisonFunction de l’échantillonneur actuel pour comparer srcReferenceValue par rapport à la valeur du composant rouge pour la ressource source à chaque « TAP » de filtre (Texel) que le filtre de texture actuellement configuré couvre, en fonction des coordonnées fournies dans srcAddress.
La comparaison se produit après que srcReferenceValue a été quantifiée à la précision du format de texture, exactement de la même façon que z est quantifiée à la précision de la mémoire tampon de profondeur avant la comparaison de profondeur au test de visibilité de la fusion de sortie. Cela comprend une bride à la plage de format (par exemple, [ 0.. 1 ] pour un format UNORM).
Le composant rouge du Texel source est comparé au srcReferenceValue quantifié. Pour les texels qui sont en dehors de la ressource, la valeur du composant rouge est déterminée en appliquant les modes d’adresse (et BorderColorR en mode de bordure) à partir de l’échantillonneur. La comparaison honore toutes les règles de comparaison de virgule flottante D3D11, dans le cas où le format de texture est virgule flottante.
Chaque comparaison qui passe retourne 1,0 f comme valeur de composant rouge pour le Texel, et chaque comparaison qui échoue retourne 0,0 f comme valeur rouge pour la texture. Le filtrage se produit exactement comme spécifié par les États de l’échantillonneur, en opérant uniquement dans le composant rouge et en renvoyant un résultat de filtre scalaire unique au nuanceur, répliqué sur tous les composants de dest masqués.
L’utilisation de l' exemple _ c est orthogonale à tous les autres contrôles de filtrage à usage général. l' exemple _ c fonctionne de façon transparente avec les autres modes de filtre à usage général. l' exemple _ c modifie le comportement des filtres à usage général de telle sorte que les valeurs qui sont filtrées deviennent 1,0 f ou 0.0 f en raison des résultats de la comparaison.
L’extraction à partir d’un emplacement d’entrée auquel rien n’est lié retourne 0 pour tous les composants.
Pour plus d’informations, consultez l' exemple d’instruction.
Cette instruction s’applique aux étapes suivantes du nuanceur :
| Nuanceur de sommets | Nuanceur de géométrie | Nuanceur de pixels |
|---|---|---|
| x |
Modèle de nuanceur minimal
Cette fonction est prise en charge dans les modèles de nuanceur suivants.
| Modèle de nuanceur | Prise en charge |
|---|---|
| Shader, modèle 5 | Oui |
| Modèle de nuanceur 4,1 | Oui |
| Nuanceur modèle 4 | Oui |
| Shader Model 3 (DirectX HLSL) | non |
| Shader Model 2 (DirectX HLSL) | non |
| Shader Model 1 (DirectX HLSL) | non |