SampleLevel (DirectX HLSL-Texturobjekt)

Beispiel für eine Textur mit einem Offset auf mipmap-Ebene.

<Vorlagentyp> Object.SampleLevel( sampler_state S, float Location, float LOD [, int Offset] );

Diese Funktion ähnelt Sample , mit der Ausnahme, dass sie die LOD-Ebene (in der letzten Komponente des Standortparameters) verwendet, um die mipmap-Ebene auszuwählen. Beispielsweise verwendet eine 2D-Textur die ersten beiden Komponenten für uv-Koordinaten und die dritte Komponente für die mipmap-Ebene.

Parameter

Element BESCHREIBUNG
Objekt
Beliebige Texturobjekttypen (außer Texture2DMS und Texture2DMSArray).
S
[in] Ein Samplerzustand. Dies ist ein In einer Effektdatei deklariertes Objekt, das Zustandszuweisungen enthält.
Lage
[in] Die Texturkoordinaten. Der Argumenttyp ist vom Texturobjekttyp abhängig.
Texture-Object Typ Parametertyp
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

Wenn das Texturobjekt ein Array ist, ist die letzte Komponente der Arrayindex.

LOD

[in] Eine Zahl, die die mipmap-Ebene angibt. Wenn der Wert = 0 ist, wird die null'th (größte Karte) verwendet. Der Bruchwert (sofern angegeben) wird verwendet, um zwischen zwei Mipmap-Ebenen zu interpolieren.

Offset

[in] Ein optionaler Texturkoordinatenoffset, der für jeden Texturobjekttyp verwendet werden kann; der Offset wird vor der Stichprobenentnahme auf die Position angewendet. Die Texturoffsets müssen statisch sein. Der Argumenttyp ist vom Texturobjekttyp abhängig. Weitere Informationen finden Sie unter Anwenden von Texturkoordinatenoffsets.

Texture-Object Typ Parametertyp
Texture1D, Texture1DArray INT
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray Nicht unterstützt

Rückgabewert

Der Vorlagentyp der Textur, bei dem es sich um einen ein- oder mehrteiligen Vektor handeln kann. Das Format basiert auf der DXGI_FORMAT der Textur.

Minimales Shadermodell

Diese Funktion wird in den folgenden Shadermodellen unterstützt.

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 ist im Shadermodell 4.1 oder höher verfügbar.
  2. Shadermodell 4.1 ist in Direct3D 10.1 oder höher verfügbar.

Beispiel

Dieses partielle Codebeispiel stammt aus der Datei Instancing.fx im Beispiel "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 );
   ...

Textur-Objekt