Bagikan melalui


Jenis Sampler

Gunakan sintaks berikut untuk mendeklarasikan status sampler serta status perbandingan sampler.

Perbedaan antara Direct3D 9 dan Direct3D 10 dan yang lebih baru:
Berikut adalah sintaks untuk sampler di Direct3D 9.
sampler Name = SamplerType{ Texture = <texture_variable>; [state_name = state_value;] ... };

Sintaks untuk sampler di Direct3D 10 dan yang lebih baru sedikit diubah untuk mendukung objek tekstur dan array sampler.

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

Parameter

Sampler

Hanya Direct3D 9. Kata kunci yang diperlukan.

Nama

String ASCII yang secara unik mengidentifikasi nama variabel sampler.

[Indeks]

Direct3D 10 dan yang lebih baru saja. Ukuran array opsional; bilangan bulat positif lebih besar dari atau sama dengan 1.

SamplerType

[in] Jenis sampler, yang merupakan salah satu dari yang berikut: sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState.

Perbedaan antara Direct3D 9 dan Direct3D 10 dan yang lebih baru:

  • Direct3D 10 dan yang lebih baru mendukung satu jenis sampler tambahan: SamplerComparisonState.

Tekstur = <texture_variable>;

Hanya Direct3D 9. Variabel tekstur. Kata kunci Tekstur diperlukan di sisi kiri; nama variabel berada di sisi kanan ekspresi dalam tanda kurung sudut.

state_name = state_value

[in] Penetapan status opsional. Sisi kiri penugasan adalah nama status, sisi kanan adalah nilai status. Semua penetapan status harus muncul dalam blok pernyataan (dalam tanda kurung kurawal). Setiap pernyataan dipisahkan dengan titik koma. Tabel berikut mencantumkan kemungkinan nama status.

// sampler state
AddressU
AddressV
AddressW
BorderColor
Filter
MaxAnisotropy
MaxLOD
MinLOD
MipLODBias

// sampler-comparison state
ComparisonFunc

Sisi kanan setiap ekspresi adalah nilai yang ditetapkan untuk setiap status. Lihat struktur D3D11_SAMPLER_DESC untuk kemungkinan nilai status untuk Direct3D 11. Ada hubungan 1 hingga 1 antara nama negara dan anggota struktur. Lihat contoh berikut.

Keterangan

Saat Anda menerapkan efek, status sampler adalah salah satu dari beberapa jenis status yang mungkin perlu Anda siapkan di alur untuk penyajian. Untuk daftar semua status yang mungkin dapat Anda tetapkan dalam efek, lihat:

Contoh

Perbedaan antara Direct3D 9 dan Direct3D 10:
Berikut adalah contoh parsial dari sampel Direct3D 9 dari Sampel BasicHLSL.
sampler MeshTextureSampler = 
sampler_state
{
    Texture = <g_MeshTexture>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

Berikut adalah contoh parsial dari sampel Direct3D 10 dari Sampel BasicHLSL10.

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

Berikut adalah contoh parsial mendeklarasikan status perbandingan sampler, dan memanggil sampler perbandingan di 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);

Lihat juga

Jenis Data (DirectX HLSL)