Load (объект текстуры DirectX HLSL)
Считывает данные текселя без фильтрации или выборки.
ret Object.Load(
[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 );
...
}
...
}
Связанные темы