gather4 (sm5 - asm)
Собирает четыре текселя, которые будут использоваться в операции билинейной фильтрации, и упаковывает их в один регистр. Эта инструкция работает только с текстурами 2D или CubeMap, включая массивы. Используются только режимы адресации средства выборки и используется верхний уровень любой пирамиды MIP.
gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.select_component] |
---|
Элемент | Описание |
---|---|
Dest |
[in] Адрес результатов операции. |
srcAddress |
[in] Набор координат текстуры. |
srcResource |
[in] Регистр текстуры. |
srcSampler |
[in] Регистр выборки. |
Комментарии
Эта инструкция ведет себя как пример инструкции, но отфильтрованный пример не создается. Четыре образца, которые будут способствовать фильтрации, помещаются в xyzw в порядке счетчика по часовой стрелке, начиная с выборки в нижнем левом крае запрашиваемого расположения. Это то же самое, что выборка точек с координатами текстур (u,v) в следующих местах: (-,+),(+,+),(+,-)(-,-), где величина дельт всегда составляет половину текселя.
Для текстур CubeMap, когда двулинейный след охватывает край, используются тексели из соседнего лица. В углах используются те же правила, что и в примере инструкции; т. е. неизвестный угол считается средним из трех углов лицевой стороны.
Существуют ограничения формата текстуры, применяемые к сбору4 , которые выражаются в списке форматов.
Swizzle в srcResource позволяет произвольно свертывать возвращаемые значения перед их записью в место назначения.
.select_component в srcSampler выбирает компонент исходной текстуры (r/g/b/a) для чтения 4 текселей.
Для форматов с компонентами float32, если извлекаемое значение является нормализованным, денормализованным, +-0 или +-INF, оно возвращается шейдеру без изменений. NaN возвращается как NaN, но точное битовое представление NaN может быть изменено. Для TextureCube некоторый синтез отсутствующих 4-го текселя должен происходить по углам, поэтому возврат битов без изменений для синтезированного текселя не применяется, и денормы могут быть удалены.
Для аппаратных реализаций с помощью этой инструкции нельзя использовать оптимизации традиционной билинейной фильтрации, которая обнаруживает образцы непосредственно в текселях и пропускает чтение текселей, имеющих вес 0. функция gather4 всегда возвращает все запрошенные тексели.
Эта инструкция применяется к следующим этапам шейдера:
Вершина | Корпуса | Домен | Geometry | Пиксель | Вычисления |
---|---|---|---|---|---|
X | X | X | X | X | X |
Минимальная модель шейдера
Эта инструкция поддерживается в следующих моделях шейдеров:
Модель шейдера | Поддерживается |
---|---|
Модель шейдера 5 | да |
Модель шейдера 4.1 | нет |
Модель шейдера 4 | нет |
Модель шейдера 3 (DirectX HLSL) | нет |
Модель шейдера 2 (DirectX HLSL) | нет |
Модель шейдера 1 (DirectX HLSL) | нет |