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]紋理座標。 引數類型相依于紋理物件類型。
如果紋理物件是陣列,最後一個元件就是陣列索引。 |
||||||||||
Lod |
[in]指定 mipmap 層級的數位。 如果值為 = 0,則會使用 (最大的對應) 。 如果提供) 用於插補兩個 mipmap 層級之間的小數值 (。 |
||||||||||
抵消 |
[in]選擇性紋理座標位移,可用於任何紋理物件類型;位移會套用至取樣之前的位置。 紋理位移必須是靜態的。 引數類型相依于紋理物件類型。 如需詳細資訊,請參閱 套用紋理座標位移。
|
傳回值
紋理的範本類型,可能是單一或多元件向量。 格式是以紋理 的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 |
- TextureCubeArray 可在著色器模型 4.1 或更高版本中使用。
- 著色器模型 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 );
...