Laden (DirectX HLSL-Texturobjekt)

Liest Texeldaten ohne Filterung oder Stichproben.

ret Object.Load(
typeX Location,
[typeX SampleIndex, ]
[typeX Offset ]
);

typeX gibt an, dass es vier mögliche Typen gibt: int, int2, int3 oder int4.

Parameter

Objekt

Ein Texturobjekttyp (mit Ausnahme von TextureCube oder TextureCubeArray).

Lage

[in ] Die Texturkoordinaten; die letzte Komponente gibt die Mipmapebene 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, Texture 2D, Texture2DMSArray int3
Texture2DArray, Texture3D int4

Um beispielsweise auf eine 2D-Textur zuzugreifen, stellen Sie UV-Koordinaten für die ersten beiden Komponenten und eine Mipmapebene für die dritte Komponente bereit.

Hinweis

Wenn mindestens eine der Koordinaten in Location die mipmap-Ebenendimensionen u, v oder w der Textur überschreitet, gibt Load in allen Komponenten 0 (null) zurück. Direct3D garantiert, dass für jede Ressource, auf die außerhalb der Grenzen zugegriffen wird, 0 (null) zurückgegeben wird.

SampleIndex

[in ] Ein optionaler Samplingindex.

Texturtyp Parametertyp
Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D, Texture2DArray, TextureCube, TextureCubeArray Nicht unterstützt
Texture2DMS, Texture2DMSArray INT

Hinweis

SampleIndex ist nur für Texturen mit mehreren Stichproben verfügbar.

Offset

[in ] Ein optionaler Offset, der vor der Stichprobenentnahme 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, Texture2DArray int3

Hinweis

Wenn Sie Offset mit Texturen mit mehreren Stichproben verwenden, müssen Sie auch SampleIndex angeben.

Rückgabewert

Der Rückgabetyp entspricht dem Typ in der Objektdeklaration. Beispielsweise weist ein Texture2D-Objekt, das als "Texture2d < uint4 > myTexture;" deklariert wurde, einen Rückgabewert vom Typ uint4 auf.

Shader-Mindestmodell

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

Beispiel

Dieses Teilcodebeispiel 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 );
        ...     
    }
    ...
}   

Texturobjekt