Load (DirectX HLSL-Texturobjekt)
Liest Texeldaten ohne Filterung oder Sampling.
ret Object.Load(
[typeX SampleIndex, ] [typeX Offset ] |
typeX gibt an, dass es vier mögliche Typen gibt: int, int2, int3 oder int4.
Parameter
-
Objekt
-
Ein Texturobjekttyp (außer TextureCube oder TextureCubeArray).
-
Lage
-
[in] Die Texturkoordinaten; die letzte Komponente gibt die mipmap-Ebene an. Diese Methode verwendet ein 0-basiertes Koordinatensystem und kein 0,0-1,0 UV-System. Der Argumenttyp ist vom Texturobjekttyp abhängig.
Objekttyp Parametertyp Buffer INT Texture1D, Texture2DMS int2 Texture1DArray, Texture2D, Texture2DMSArray int3 Texture2DArray, Texture3D int4 Um beispielsweise auf eine 2D-Textur zuzugreifen, geben Sie ganzzahlige Texelkoordinaten für die ersten beiden Komponenten und eine Mipmap-Ebene für die dritte Komponente an.
Hinweis
Wenn mindestens eine der Koordinaten in Location die Dimensionen der mipmap-Ebene u, v oder w der Textur überschreitet, gibt Load in allen Komponenten null zurück. Direct3D garantiert, dass null für jede Ressource zurückgegeben wird, auf die außerhalb der Grenzen zugegriffen wird.
-
SampleIndex
-
[in] Ein Stichprobenindex. Erforderlich für Texturen mit mehreren Beispielen. Wird für andere Texturen nicht unterstützt.
Texturtyp Parametertyp Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D, Texture2DArray, TextureCube, TextureCubeArray Nicht unterstützt Texture2DMS, Texture2DMSArray¹ INT -
Offset
-
[in] Ein optionaler Offset, der vor dem Sampling auf die Texturkoordinaten angewendet wird. Der Offsettyp ist vom Texturobjekttyp abhängig und muss statisch sein.
Texturtyp Parametertyp Texture1D, Texture1DArray INT Texture2D, Texture2DArray, Texture2DMS, Texture2DMSArray int2 Texture3D int3 Hinweis
SampleIndex muss immer zuerst mit Texturen mit mehreren Beispielen angegeben werden.
Rückgabewert
Der Rückgabetyp stimmt mit dem Typ in der Object-Deklaration überein. Beispielsweise weist ein Texture2D-Objekt, das als "Texture2d<uint4> myTexture;" deklariert wurde, einen Rückgabewert vom Typ uint4 auf.
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 |
- Das Shadermodell 4.1 ist in Direct3D 10.1 oder höher verfügbar.
Beispiel
Dieses partielle Codebeispiel stammt aus der Datei Paint.fx im AdvancedParticles-Beispiel.
// 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 );
...
}
...
}
Zugehörige Themen