SampleLevel (объект текстуры DirectX HLSL)
Образцы текстуры с помощью смещения уровня MIP-карты.
<Тип> шаблона Object.SampleLevel( sampler_state S, float Location, float LOD [, int Offset] );
Эта функция похожа на Sample , за исключением того, что она использует уровень LOD (в последнем компоненте параметра location) для выбора уровня MIP-карты. Например, двумерная текстура использует первые два компонента для уф-координат и третий компонент для уровня MIP-карты.
Параметры
Элемент | Описание | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Объекта |
Любой тип объекта текстуры (кроме Texture2DMS и Texture2DMSArray). |
||||||||||
S |
[in] Состояние sampler. Это объект, объявленный в файле эффектов, который содержит назначения состояний. |
||||||||||
Расположение |
[in] Координаты текстуры. Тип аргумента зависит от типа объекта текстуры.
Если объект текстуры является массивом, последним компонентом является индекс массива. |
||||||||||
ЛОД |
[in] Число, задающее уровень MIP-карты. Если значение равно 0, используется нулевой (самая большая карта). Дробное значение (если указано) используется для интерполяции между двумя уровнями MIP-карты. |
||||||||||
Смещение |
[in] Необязательное смещение координат текстуры, которое можно использовать для любого типа объекта текстуры; смещение применяется к расположению перед выборкой. Смещения текстуры должны быть статическими. Тип аргумента зависит от типа объекта текстуры. Дополнительные сведения см. в разделе Применение смещения координат текстуры.
|
Возвращаемое значение
Тип шаблона текстуры, который может быть однокомпонентным или многокомпонентным вектором. Формат основан на DXGI_FORMAT текстуры.
Минимальная модель шейдера
Эта функция поддерживается в следующих моделях шейдеров.
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 доступен в модели шейдеров версии 4.1 или более поздней версии.
- Модель шейдера 4.1 доступна в Direct3D 10.1 или более поздней версии.
Пример
Этот частичный пример кода из файла Instancing.fx в примере 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 );
...