Bagikan melalui


Muat (Objek Tekstur DirectX HLSL)

Membaca data texel tanpa pemfilteran atau pengambilan sampel apa pun.

ret Object.Load(
Lokasi typeX,
[typeX SampleIndex, ]
[typeX Offset ]
);

typeX menunjukkan bahwa ada empat jenis yang mungkin: int, int2, int3 atau int4.

 

Parameter

Objek

Jenis objek tekstur (kecuali TextureCube atau TextureCubeArray).

Lokasi

[in] Koordinat tekstur; komponen terakhir menentukan tingkat mipmap. Metode ini menggunakan sistem koordinat berbasis 0 dan bukan sistem UV 0,0-1.0. Jenis argumen tergantung pada jenis objek tekstur.

Jenis Objek Jenis Parameter
Buffer int
Texture1D, Texture2DMS int2
Texture1DArray, Texture2D, Texture2DMSArray int3
Texture2DArray, Texture3D int4

 

Misalnya, untuk mengakses tekstur 2D, berikan koordinat texel bilangan bulat untuk dua komponen pertama dan tingkat mipmap untuk komponen ketiga.

Catatan

Ketika satu atau beberapa koordinat di Lokasi melebihi dimensi tingkat tekstur u, v, atau w mipmap, Muat mengembalikan nol di semua komponen. Direct3D menjamin untuk mengembalikan nol untuk sumber daya apa pun yang diakses di luar batas.

 

SampleIndex

[in] Indeks pengambilan sampel. Diperlukan untuk tekstur multi-sampel. Tidak didukung untuk tekstur lain.

Jenis Tekstur Jenis Parameter
Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D, Texture2DArray, TextureCube, TextureCubeArray tidak didukung
Texture2DMS, Texture2DMSArray¹ int

Offset

[in] Offset opsional diterapkan ke koordinat tekstur sebelum pengambilan sampel. Jenis offset tergantung pada jenis objek tekstur, dan harus statis.

Jenis Tekstur Jenis Parameter
Texture1D, Texture1DArray int
Texture2D, Texture2DArray, Texture2DMS, Texture2DMSArray int2
Texture3D int3

 

Catatan

SampleIndex harus selalu ditentukan terlebih dahulu dengan tekstur multi-sampel.

 

Tampilkan Nilai

Jenis pengembalian cocok dengan jenis dalam deklarasi Objek . Misalnya, objek Texture2D yang dinyatakan sebagai "Texture2d<uint4> myTexture;" memiliki nilai pengembalian jenis uint4.

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

 

  • Shader Model 4.1 tersedia di Direct3D 10.1 atau yang lebih tinggi.

Contoh

Contoh kode parsial ini berasal dari file Paint.fx dalam Sampel AdvancedParticles.

// Object Declarations
Buffer<float4> g_ParticleBuffer;

// Shader body calling the intrinsic function
float4 PSPaint(PSQuadIn input) : SV_Target
{       
    ... 
    for( int i=g_ParticleStart; i<g_NumParticles; i+=g_ParticleStep )
    {
        ... 
        // load the particle
        float4 particlePos = g_ParticleBuffer.Load( i*4 );
        float4 particleColor = g_ParticleBuffer.Load( (i*4) + 2 );
        ...     
    }
    ...
}   

Objek Tekstur