Tipo di sampler
Usare la sintassi seguente per dichiarare lo stato del sampler e lo stato di confronto di sampler.
Differenze tra Direct3D 9 e Direct3D 10 e versioni successive: Ecco la sintassi per un sampler in Direct3D 9.
La sintassi di un sampler in Direct3D 10 e versioni successive viene modificata leggermente per supportare gli oggetti trama e le matrici di sampler.
|
Parametri
-
Campionatore
-
Solo Direct3D 9. Parola chiave obbligatoria.
-
Nome
-
Stringa ASCII che identifica in modo univoco il nome della variabile sampler.
-
[Indice]
-
Solo Direct3D 10 e versioni successive. Dimensioni facoltative della matrice; intero positivo maggiore o uguale a 1.
-
SamplerType
-
[in] Tipo di sampler, uno dei seguenti: sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState.
Differenze tra Direct3D 9 e Direct3D 10 e versioni successive:
- Direct3D 10 e versioni successive supporta un tipo di sampler aggiuntivo: SamplerComparisonState.
-
Trama = <texture_variable>;
-
Solo Direct3D 9. Variabile di trama. La parola chiave Texture è necessaria sul lato sinistro; il nome della variabile appartiene sul lato destro dell'espressione all'interno delle parentesi graffe.
-
state_name = state_value
-
[in] Assegnazioni di stato facoltative. Il lato sinistro di un'assegnazione è un nome di stato, il lato destro è il valore dello stato. Tutte le assegnazioni di stato devono essere visualizzate all'interno di un blocco di istruzioni (tra parentesi graffe). Ogni istruzione viene separata con un punto e virgola. Nella tabella seguente sono elencati i nomi di stato possibili.
// sampler state AddressU AddressV AddressW BorderColor Filter MaxAnisotropy MaxLOD MinLOD MipLODBias // sampler-comparison state ComparisonFunc
Il lato destro di ogni espressione è il valore assegnato a ogni stato. Per i valori di stato possibili per Direct3D 11, vedere la struttura D3D11_SAMPLER_DESC . Esiste una relazione da 1 a 1 tra i nomi di stato e i membri della struttura. Vedere l'esempio seguente.
Commenti
Quando si implementa un effetto, lo stato del sampler è uno dei diversi tipi di stato che potrebbe essere necessario configurare nella pipeline per il rendering. Per un elenco di tutti gli stati possibili che è possibile impostare in un effetto, vedere:
- Direct3D 10 usa gruppi di stati.
- Direct3D 9 usa singoli stati.
Esempio
Differenze tra Direct3D 9 e Direct3D 10: Ecco un esempio parziale di un sampler Direct3D 9 di BasicHLSL.
Ecco un esempio parziale di un sampler Direct3D 10 di BasicHLSL10.
|
Ecco un esempio parziale di dichiarazione dello stato di confronto di sampler e chiamata a un sampler di confronto in Direct3D 10.
SamplerComparisonState ShadowSampler
{
// sampler state
Filter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
AddressU = MIRROR;
AddressV = MIRROR;
// sampler comparison state
ComparisonFunc = LESS;
};
float3 vModProjUV;
...
float fShadow = g_ShadowMap.SampleCmpLevelZero( ShadowSampler, vModProjUV.xy, vModProjUV.z);