sample_c (sm4 - asm)

Esegue un filtro di confronto.

sample_c[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource.r, srcSampler, srcReferenceValue
Elemento Descrizione
dest
[in] Indirizzo dei risultati dell'operazione.
srcAddress
[in] Set di coordinate di trama. Per altre informazioni, vedere l'istruzione di esempio .
srcResource
[in] Registro delle trame. Per altre informazioni, vedere l'istruzione di esempio . Deve essere .r swizzle.
srcSampler
[in] Registro sampler. Per altre informazioni, vedere l'istruzione di esempio .
srcReferenceValue
[in] Registro con un singolo componente selezionato, che viene usato nel confronto.

Osservazioni

Lo scopo principale di questa istruzione è quello di fornire un blocco predefinito per il filtro Di profondità percentuale più vicino. "c" in sample_c sta per Confronto.

Gli operandi da sample_c sono identici all'istruzione di esempio , ad eccezione del fatto che è presente un operando di origine float32 aggiuntivo, srcReferenceValue, che deve essere un registro con un singolo componente selezionato o un valore letterale scalare.

Il parametro srcResource deve avere uno swizzle con estensione r (rosso). sample_c opera esclusivamente sul componente rosso e restituisce un singolo valore. .r swizzle in srcResource indica che il risultato scalare viene replicato in tutti i componenti.

L'ordine delle operazioni è srcReferenceValue {ComparisonFunction} texel.R.

Quando un buffer di profondità viene impostato come trama di input, il valore di profondità viene visualizzato nel componente rosso.

Se questa istruzione viene usata con una risorsa che non è texture1D/2D/2DArray/CubeArray, produce risultati non definiti.

Quando questa istruzione viene eseguita, l'hardware di campionamento usa la funzione ComparisonFunction corrente di Sampler per confrontare srcReferenceValue con il valore del componente Rosso per la risorsa di origine in ogni posizione di "tocco" del filtro (texel) attualmente configurato, in base alle coordinate fornite in srcAddress.

Il confronto si verifica dopo che srcReferenceValue è stato quantizzato per la precisione del formato di trama, esattamente come viene quantizzato z per la precisione del buffer di profondità prima del confronto di profondità nel test di visibilità unione output. Ciò include un blocco per l'intervallo di formato ,ad esempio [0..1] per un formato UNORM.

Il componente rosso del texel di origine viene confrontato con srcReferenceValue quantizzato. Per i texel che rientrano nella risorsa, il valore del componente Rosso viene determinato applicando le modalità di indirizzo (e BorderColorR se in modalità Border) dall'sampler. Il confronto rispetta tutte le regole di confronto a virgola mobile D3D11, nel caso in cui il formato della trama sia a virgola mobile.

Ogni confronto che passa restituisce 1,0f come valore del componente Rosso per il texel e ogni confronto che non riesce restituisce 0,0f come valore Rosso per la trama. Il filtro viene quindi eseguito esattamente come specificato dagli stati sampler, operando solo nel componente Rosso e restituendo un singolo risultato del filtro scalare allo shader, replicato in tutti i componenti mascherati.

L'uso di sample_c è ortogonale per tutti gli altri controlli di filtro per utilizzo generico. sample_c funziona perfettamente con le altre modalità di filtro per utilizzo generico. sample_c modifica il comportamento dei filtri per utilizzo generico in modo che i valori filtrati diventino tutti 1,0f o 0,0f a causa dei risultati del confronto.

Il recupero da uno slot di input a cui non è associato alcun valore restituisce 0 per tutti i componenti.

Per altre informazioni, vedere l'istruzione di esempio .

Questa istruzione si applica alle fasi seguenti dello shader:

Vertex shader Geometry shader Pixel shader
x

Modello di shader minimo

Questa funzione è supportata nei modelli di shader seguenti.

Modello di shader Supportata
Modello shader 5 yes
Modello shader 4.1 yes
Modello shader 4 yes
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Assembly del modello shader 4 (DirectX HLSL)