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.
sampler Name = SamplerType{ Texture = <texture_variable> ; [state_name = state_value;] ... };

La sintassi di un sampler in Direct3D 10 e versioni successive viene modificata leggermente per supportare gli oggetti trama e le matrici di sampler.

SamplerType Name[Index]{ [state_name = state_value;] ... };

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:

Esempio

Differenze tra Direct3D 9 e Direct3D 10:
Ecco un esempio parziale di un sampler Direct3D 9 di BasicHLSL.
sampler MeshTextureSampler = 
sampler_state
{
    Texture = <g_MeshTexture>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

Ecco un esempio parziale di un sampler Direct3D 10 di BasicHLSL10.

SamplerState MeshTextureSampler
{
    Filter = MIN_MAG_MIP_LINEAR;
    AddressU = Wrap;
    AddressV = Wrap;
};

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);

Vedi anche

Tipi di dati (DirectX HLSL)