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.
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.
|
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 |
- TextureCubeArray ist im Shadermodell 4.1 oder höher verfügbar.
- 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 );
...