SampleLevel (DirectX HLSL 紋理物件)

使用 mipmap 層級位移來取樣紋理。

<範本類型 > Object.SampleLevel ( sampler_state S, float Location, float LOD [, int Offset] ) ;

此函式類似于 Sample ,不同之處在于它會使用位置參數最後一個元件中的 LOD 層級 (,) 選擇 mipmap 層級。 例如,2D 紋理會針對 uv 座標使用前兩個元件,以及 mipmap 層級的第三個元件。

參數

項目 描述
物件
Texture2DMS 和 Texture2DMSArray 以外的任何 紋理物件 類型 () 。
S
[in] 取樣器狀態。 這是在包含狀態指派的效果檔案中宣告的物件。
位置
[in]紋理座標。 引數類型相依于紋理物件類型。
Texture-Object類型 參數類型
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

如果紋理物件是陣列,最後一個元件就是陣列索引。

Lod

[in]指定 mipmap 層級的數位。 如果值為 = 0,則會使用 (最大的對應) 。 如果提供) 用於插補兩個 mipmap 層級之間的小數值 (。

抵消

[in]選擇性紋理座標位移,可用於任何紋理物件類型;位移會套用至取樣之前的位置。 紋理位移必須是靜態的。 引數類型相依于紋理物件類型。 如需詳細資訊,請參閱 套用紋理座標位移

Texture-Object類型 參數類型
Texture1D、Texture1DArray int
Texture2D、Texture2DArray int2
Texture3D int3
TextureCube、TextureCubeArray 不支援

傳回值

紋理的範本類型,可能是單一或多元件向量。 格式是以紋理 的DXGI_FORMAT為基礎。

最小著色器模型

下列著色器模型中支援此函式。

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 可在著色器模型 4.1 或更高版本中使用。
  2. 著色器模型 4.1 可在 Direct3D 10.1 或更高版本中使用。

範例

這個部分程式碼範例來自 Instancing10 Sample 中的 Instancing.fx檔案。

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

Texture-Object