Bagikan melalui


SampleLevel (Objek Tekstur HLSL DirectX)

Sampel tekstur menggunakan offset tingkat mipmap.

<Jenis> Templat Object.SampleLevel( sampler_state S, Lokasi float, FLOAT LOD [, int Offset] );

Fungsi ini mirip dengan Sampel kecuali menggunakan tingkat LOD (di komponen terakhir parameter lokasi) untuk memilih tingkat mipmap. Misalnya, tekstur 2D menggunakan dua komponen pertama untuk koordinat uv dan komponen ketiga untuk tingkat mipmap.

Parameter

Item Deskripsi
Objek
Jenis objek tekstur apa pun (kecuali Texture2DMS dan Texture2DMSArray).
S
[in] Status Sampler. Ini adalah objek yang dideklarasikan dalam file efek yang berisi penetapan status.
Lokasi
[in] Koordinat tekstur. Jenis argumen tergantung pada jenis objek tekstur.
Jenis Texture-Object Jenis Parameter
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

Jika objek tekstur adalah array, komponen terakhir adalah indeks array.

LOD

[in] Angka yang menentukan tingkat mipmap. Jika nilainya = 0, nol'th (peta terbesar) digunakan. Nilai pecahan (jika disediakan) digunakan untuk menginterpolasi antara dua tingkat mipmap.

Offset

[in] Offset koordinat tekstur opsional, yang dapat digunakan untuk jenis objek tekstur apa pun; offset diterapkan ke lokasi sebelum pengambilan sampel. Offset tekstur harus statis. Jenis argumen tergantung pada jenis objek tekstur. Untuk informasi selengkapnya, lihat Menerapkan offset koordinat tekstur.

Jenis Texture-Object Jenis Parameter
Texture1D, Texture1DArray int
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray tidak didukung

Tampilkan Nilai

Jenis templat tekstur, yang mungkin merupakan vektor tunggal atau multi-komponen. Format didasarkan pada DXGI_FORMAT tekstur.

Minimum Shader Model

Fungsi ini didukung dalam model shader berikut.

vs_4_0 vs_4_1 ps_4_0 ps_4_1 gs_4_0 gs_4_1
x x x x x x
  1. TextureCubeArray tersedia dalam Model Shader 4.1 atau yang lebih tinggi.
  2. Shader Model 4.1 tersedia di Direct3D 10.1 atau yang lebih tinggi.

Contoh

Contoh kode parsial ini berasal dari file Instancing.fx dalam Sampel Instancing10.

// Object Declarations
Texture1D g_txRandom;

SamplerState g_samPoint
{
    Filter = MIN_MAG_MIP_POINT;
    AddressU = Wrap;
    AddressV = Wrap;
};

    
// Shader body calling the intrinsic function
float3 RandomDir(float fOffset)
{   
    float tCoord = (fOffset) / 300.0;
    return g_txRandom.SampleLevel( g_samPoint, tCoord, 0 );
   ...

Objek Tekstur