Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Считывает отдельные образцы из 2-мерных многомерных текстур.
ld2dms[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], sampleIndex |
---|
Товар | Описание |
---|---|
dest |
[in] Адрес результата операции. |
srcAddress |
[in] Координаты текстуры, необходимые для выполнения примера. |
srcResource |
[in] Регистр текстуры (t#), который должен быть объявлен, определяющий, из какой текстуры или буфера требуется получить из |
sampleIndex |
[in] Определяет примеры для чтения из srcResource (скалярный операнд). |
Замечания
Эта инструкция является упрощенной альтернативой образцу инструкции. Он извлекает данные из указанной текстуры без фильтрации (например, выборки точек) с помощью предоставленного целого числа srcAddress и sampleIndex.
srcAddress предоставляет набор координат текстур, необходимых для выполнения примера в виде целых чисел без знака. Если srcAddress выходит из диапазона[0...( #texels в измерении -1)], ld2dms всегда возвращает 0 во всех компонентах, присутствующих в формате ресурса, и значения по умолчанию (0,0 0,1,0f/0x00000001) для отсутствующих компонентов.
sampleIndex не должен быть литералом. Количество нескольких примеров не должно быть указано в ресурсе текстуры, и оно работает с представлениями глубины или наборов элементов.
Приложение, желающее более гибкого контроля над поведением адресов вне диапазона, должно использовать пример инструкции вместо этого, так как она учитывает поведение оболочки адресов, зеркального отображения или границы, определенного как состояние выборки.
srcAddress.b (post-swizzle) игнорируется для текстур2D. Если значение выходит за пределы диапазона доступных индексов массива [0...( размер массива-1)], то ld2dms всегда возвращает 0 во всех компонентах, присутствующих в формате ресурса, и значения по умолчанию (0,0 0,1,0f/0x00000001) для отсутствующих компонентов.
Для массивов Texture2D srcAddress.b (post-swizzle) предоставляет индекс массива. В противном случае оно имеет то же поведение, что и Texture2D.
srcAddress.a (post-swizzle) всегда игнорируется. Компилятор HLSL никогда не будет выводить ничего там.
srcResource — это регистр текстуры (t#), который должен быть объявлен (22.3.11), определяющий, из какой текстуры требуется получить.
Получение из t#, не привязанное к нему, возвращает значение 0 для всех компонентов.
Смещение адреса
Необязательный суффикс [_aoffimmi(u,v,w)] (смещение адреса по немедленному целочислению) указывает, что координаты текстуры для ld2dms должны быть смещения набором предоставленных непосредственных значений целочисленной константы пространства текселя. Литеральные значения — это набор из 4-разрядных чисел 2, имеющих целый диапазон [-8,7].
Смещения добавляются в координаты текстуры в пространстве текселя.
Смещения адресов не применяются вдоль оси массива Массивов Texture1D/2D.
Компоненты _aoffimmi v,w игнорируются для текстур1D.
Компонент _aoffimmi w игнорируется для текстур2D.
Так как координаты текстуры для ld2dms являются целыми числами без знака, если смещение приводит к переходу ниже нуля, он будет упаковывать в большой адрес и привести к выходу из границ, который, как ld , возвращает 0 во всех компонентах, присутствующих в формате ресурса, и значения по умолчанию (0,0 0,1,0f/0x00000001) для отсутствующих компонентов.
Пример номера
ld2dms доступно для использования в любом ресурсе. ld2dms работает одинаково с ld , за исключением ресурсов многофакторной 2D, используя дополнительный (0) образец операндаIndex , чтобы определить, какой пример для чтения из ресурса.
Результат указания примераIndex , превышающего количество выборок в ресурсе, не определен, но не может возвращать данные за пределами адресного пространства контекста устройства.
Элемент управления возвращаемым типом
Формат данных, возвращаемый ld2dms в целевой регистр, определяется так же, как описано в примере инструкции. Он основан на формате, привязанном к параметру srcResource (t#).
Как и в примере инструкции, возвращаемые значения для ld2dms являются 4-векторными значениями по умолчанию для компонентов, не присутствующих в формате. Swizzle в srcResource определяет, как изменить 4-компонентный результат, возвращающийся из нагрузки текстуры, после чего маска в dest определяет, какие компоненты в деста будут обновлены.
Если 32-разрядное значение с плавающей запятой считывается ld2dms в 32-разрядном регистре, биты не тронуты; то есть денормальные значения остаются денормальными. Это в отличие от примера инструкции.
Прочие сведения
Так как фильтрация не связана с этой инструкцией, такие понятия, как предвзятость LOD, не применяются. Соответственно, нет параметра s# sampler .
Ограничения
- srcResource должен быть регистром t#, а не текстурой, текстурой1D или Texture1DArray. srcResource не может быть константойBuffer, которая не может быть привязана к регистрам t#.
- Относительная адресация в srcResource не разрешена.
- srcAddress и sampleIndex должны быть temp (r#/x#), константой (cb#) или регистром входных данных (v#).
- dest должен быть временным (r#/x#) или регистром выходных данных (o*#).
Эта инструкция применяется к следующим этапам шейдера:
Шейдер вершин | Шейдер геометрии | Пиксельный шейдер |
---|---|---|
x | x | x |
Минимальная модель шейдера
Эта функция поддерживается в следующих моделях шейдеров.
Модель шейдера | Поддерживается |
---|---|
модели шейдера 5 | да |
Модель шейдера 4.1 | да |
модель шейдера 4 | нет |
Модель шейдера 3 (DirectX HLSL) | нет |
Модель шейдера 2 (DirectX HLSL) | нет |
Модель шейдера 1 (DirectX HLSL) | нет |