Load (объект текстуры DirectX HLSL)

Считывает данные текселя без фильтрации или выборки.

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

TypeX указывает, что существует четыре возможных типа: int, int2, int3 или int4.

 

Параметры

Объекта

Тип объекта текстуры (за исключением TextureCube или TextureCubeArray).

Расположение

[in] Координаты текстуры; последний компонент задает уровень MIP-карты. В этом методе используется система координат на основе 0, а не УФ-система 0,0–1,0. Тип аргумента зависит от типа объекта текстуры.

Тип объекта Тип параметра
Буфер INT
Texture1D, Texture2DMS int2
Texture1DArray, Texture2D, Texture2DMSArray int3
Texture2DArray, Texture3D int4

 

Например, чтобы получить доступ к двумерной текстуре, укажите целочисленные координаты текселя для первых двух компонентов и уровень MIP-карты для третьего компонента.

Примечание

Если одна или несколько координат в расположении превышают размеры MIP-карты u, v или w текстуры, функция Load возвращает ноль во всех компонентах. Direct3D гарантирует возврат нуля для любого ресурса, доступ к которому осуществляется вне границ.

 

SampleIndex

[in] Индекс выборки. Требуется для текстур с несколькими выборками. Не поддерживается для других текстур.

Тип текстуры Тип параметра
Texture1D, Texture1DArray, Texture2D, Texture2DArray, Texture3D, Texture2DArray, TextureCube, TextureCubeArray не поддерживается
Texture2DMS, Texture2DMSArray¹ INT

Смещение

[in] Необязательное смещение, применяемое к координатам текстуры перед выборкой. Тип смещения зависит от типа объекта текстуры и должен быть статическим.

Тип текстуры Тип параметра
Texture1D, Texture1DArray INT
Texture2D, Texture2DArray, Texture2DMS, Texture2DMSArray int2
Texture3D int3

 

Примечание

SampleIndex всегда должен быть указан сначала с помощью текстур с несколькими выборками.

 

Возвращаемое значение

Тип возвращаемого значения соответствует типу в объявлении объекта . Например, объект Texture2D, объявленный как "Texture2d<uint4> myTexture;", имеет возвращаемое значение типа uint4.

Минимальная модель шейдера

Эта функция поддерживается в следующих моделях шейдеров.

vs_4_0 vs_4_1¹ ps_4_0 ps_4_1¹ gs_4_0 gs_4_1¹
x x x x x x

 

  • Модель шейдера 4.1 доступна в Direct3D 10.1 или более поздней версии.

Пример

Этот пример частичного кода получен из файла Paint.fx в примере AdvancedParticles.

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

Объект текстуры