SampleCmp (oggetto Texture DirectX HLSL)
Esempi di una trama e confronta un singolo componente rispetto al valore di confronto specificato.
float Object.SampleCmp(
posizione float, float CompareValue, [int Offset] |
Il confronto è un confronto a componente singolo tra il primo componente archiviato nella trama e il valore di confronto passato al metodo.
Questo metodo può essere richiamato solo da un pixel shader; non è supportato in un vertice o in uno shader geometry.
Parametri
-
Oggetto
-
Qualsiasi tipo di oggetto trama (ad eccezione di Texture2DMS, Texture2DMSArray o Texture3D).
-
S
-
[in] Stato di confronto di esempio, che è lo stato del campione più uno stato di confronto (una funzione di confronto e un filtro di confronto). Per informazioni dettagliate e un esempio, vedere il tipo di sampler .
-
Posizione
-
[in] Coordinate della trama. Il tipo di argomento dipende dal tipo di oggetto trama.
Texture-Object tipo Tipo di parametro Trama1D float Texture1DArray, Texture2D float2 Texture2DArray¹, TextureCube float3 TextureCubeArray¹ float4 -
CompareValue
-
Valore a virgola mobile da usare come valore di confronto.
-
Compensare
-
[in] Offset di coordinate di trama facoltativo, che può essere usato per qualsiasi tipo di oggetto trama; l'offset viene applicato alla posizione prima del campionamento. Gli offset di trama devono essere statici. Il tipo di argomento dipende dal tipo di oggetto trama. Per altre informazioni, vedere Applicazione degli offset delle coordinate della trama.
Texture-Object tipo Tipo di parametro Texture1D, Texture1DArray INT Texture2D, Texture2DArray¹ int2 TextureCube, TextureCubeArray¹ Non supportato
Valore restituito
Restituisce un valore a virgola mobile nell'intervallo [0..1].
Per ogni texel recuperato (in base alla configurazione del sampler della modalità filtro), SampleCmp esegue un confronto del valore z (3° componente di input) dal shader rispetto al valore texel (1 se il confronto passa; in caso contrario 0). SampleCmp combina quindi questi risultati 0 e 1 per ogni texel insieme come nel normale filtro trama (non una media) e restituisce il valore [0.1] risultante allo shader.
Commenti
Il filtro di confronto offre un'operazione di filtro di base utile per il filtro più vicino alla percentuale.
Quando si usa questo metodo in una risorsa a virgola mobile (anziché un formato normalizzato con segno o normalizzato), il valore di confronto non viene bloccato automaticamente tra 0,0 e 1.0. Pertanto, un blocco manuale del valore di confronto può essere necessario per le tecniche di ombreggiatura comuni.
Usare un offset solo a un miplevel intero; in caso contrario, è possibile ottenere risultati diversi a seconda dell'implementazione hardware o delle impostazioni del driver.
Modello di shader minimo
Questa funzione è supportata nei modelli shader seguenti.
vs_4_0 | vs_4_1² | ps_4_0 | ps_4_1² | gs_4_0 | gs_4_1² |
---|---|---|---|---|---|
x¹ | x |
- Texture2DArray e TextureCubeArray sono disponibili in Shader Model 4.1 o versione successiva.
- Shader Model 4.1 è disponibile in Direct3D 10.1 o versione successiva.
Nota
SampleCmp è disponibile anche in ps 4_0_level_9_1 e 4_0_level_9_3 quando si usano le tecniche descritte in Implementazione di buffer shadow per il livello di funzionalità Direct3D 9.