Jump to content

Язык шейдеров высокого уровня

(Перенаправлено с промежуточного языка DirectX )

Сцена, содержащая несколько различных 2D-шейдеров HLSL. Искажение статуи достигается чисто физически, а текстура прямоугольной рамы рядом с ней основана на интенсивности цвета. Квадрат на заднем плане был трансформирован и повернут . Частичная прозрачность и отражение воды на переднем плане добавляются шейдером, примененным окончательно ко всей сцене.

Язык шейдеров высокого уровня [1] или язык шейдеров высокого уровня [2] ( HLSL ) — это собственный язык шейдеров, разработанный Microsoft для Direct3D 9 API для расширения языка ассемблера шейдеров и впоследствии ставший обязательным языком шейдеров для унифицированной модели шейдеров Direct3D 10 и выше.

HLSL аналогичен языку шейдеров GLSL , используемому в стандарте OpenGL . Он очень похож на язык шейдеров Nvidia Cg , поскольку был разработан вместе с ним. Ранние версии двух языков считались идентичными, только продавались по-разному. [3] Шейдеры HLSL могут обеспечить значительное увеличение скорости и детализации, а также множество специальных эффектов как в 2D, так и в 3D компьютерной графике . [ нужна ссылка ]

Программы HLSL существуют в шести формах: пиксельные шейдеры (фрагменты в GLSL), вершинные шейдеры , геометрические шейдеры , вычислительные шейдеры , шейдеры тесселяции (шейдеры корпуса и домена) и шейдеры трассировки лучей (шейдеры генерации лучей, шейдеры пересечения, любое попадание/ближайшее попадание). /Мисс Шейдерс). Вершинный шейдер выполняется для каждой вершины, отправленной приложением, и в первую очередь отвечает за преобразование вершины из пространства объектов в пространство просмотра, генерацию координат текстуры и вычисление коэффициентов освещения, таких как векторы нормали, касательной и бикасательной вершины. Когда группа вершин (обычно 3, чтобы сформировать треугольник) проходит через вершинный шейдер, их выходное положение интерполируется для формирования пикселей внутри его области; этот процесс известен как растеризация .

При необходимости приложение, использующее интерфейс Direct3D 10/11/12 и аппаратное обеспечение Direct3D 10/11/12, также может указать геометрический шейдер. Этот шейдер принимает на вход некоторые вершины примитива (треугольник/линия/точка) и использует эти данные для генерации/вырождения (или тесселяции ) дополнительных примитивов или для изменения типа примитивов, каждый из которых затем отправляется в растеризатор.

В D3D11.3 и D3D12 представлена ​​модель шейдера 5.1. [4] и позже 6.0. [5]

Сравнение моделей шейдеров

[ редактировать ]

В списке указаны графические процессоры, которые первыми поддерживали данные спецификации. Производители обычно поддерживают все модели младших шейдеров через драйверы. Обратите внимание, что игры могут утверждать, что требуют определенной версии DirectX, но не обязательно требуют графического процессора, соответствующего полной спецификации этой версии, поскольку разработчики могут использовать более высокую версию DirectX API для оборудования с более низкой спецификацией Direct3D; например, DirectX 9 раскрывает функции оборудования уровня DirectX7, которых не было в DirectX7, ориентируясь на конвейер T&L с фиксированными функциями.

Сравнение пиксельных шейдеров

[ редактировать ]
Версия пиксельного шейдера 1.0 1.1 1.2

1.3 [6]

1.4 [6] 2.0 [6] [7] 2.0а [6] [7] [8] 2.0б [6] [7] [9] 3.0 [6] [10] 4.0 [11] 4.1 [12]

5.0 [13]

Зависимый предел текстуры 4 4 4 6 8 Безлимитный 8 Безлимитный Безлимитный
Предел инструкций текстуры 4 4 4 6 * 2 32 Безлимитный Безлимитный Безлимитный Безлимитный
Предел арифметических команд 8 8 8 8 * 2 64 Безлимитный Безлимитный Безлимитный Безлимитный
Регистр позиций Нет Нет Нет Нет Нет Нет Нет Да Да
Слоты инструкций 8 8 + 4 8 + 4 (8 + 6) * 2 64 + 32 512 512 ≥ 512 ≥ 65536
Выполненные инструкции 8 8 + 4 8 + 4 (8 + 6) * 2 64 + 32 512 512 65536 Безлимитный
Косвенные текстуры 4 4 4 4 4 Безлимитный 4 Безлимитный Безлимитный
Интерполированные регистры 2 + 4 2 + 4 2 + 4 2 + 6 2 + 8 2 + 8 2 + 8 10 32
Предсказание инструкций Нет Нет Нет Нет Нет Да Нет Да Нет
Индексные входные регистры Нет Нет Нет Нет Нет Нет Нет Да Да
Временные регистры 2 2 + 4 3 + 4 6 с 12 до 32 22 32 32 4096
Постоянные регистры 8 8 8 8 32 32 32 224 16×4096
Произвольное вращение Нет Нет Нет Нет Нет Да Нет Да Да
Инструкции по градиенту Нет Нет Нет Нет Нет Да Нет Да Да
Регистр счетчика циклов Нет Нет Нет Нет Нет Нет Нет Да Да
Регистрация лица (двустороннее освещение) Нет Нет Нет Нет Нет Нет Да Да Да
Динамическое управление потоком Нет Нет Нет Нет Нет Нет Нет Да (24) Да (64)
Побитовые операторы Нет Нет Нет Нет Нет Нет Нет Нет Да
Собственные целые числа Нет Нет Нет Нет Нет Нет Нет Нет Да


«32 + 64» для выполняемых инструкций означает «32 текстурные инструкции и 64 арифметические инструкции».

Сравнение вершинных шейдеров

[ редактировать ]
Версия вершинного шейдера 1.0 1.1 [14] 2.0 [7] [14] [8] 2.0а [7] [14] [8] 3.0 [10] [14] 4.0 [11]
4.1 [12]
5.0 [13]
Количество слотов инструкций 128 128 256 256 ≥ 512 ≥ 65536
Максимальное количество выполненных инструкций 128 128 1024 65536 65536 Безлимитный
Предсказание инструкций Нет Нет Нет Да Да Да
Временные регистры 12 12 12 16 32 4096
# константные регистры ≥ 96 ≥ 96 ≥ 256 256 ≥ 256 16×4096
Адресный регистр Нет Да Да Да Да Да
Статический контроль потока Нет Нет Да Да Да Да
Динамическое управление потоком Нет Нет Нет Да Да Да
Динамическая глубина контроля потока 24 24 64
Получение текстуры вершин Нет Нет Нет Нет Да Да
Количество сэмплеров текстур 4 128
создания экземпляров геометрии Поддержка Нет Нет Нет Нет Да Да
Побитовые операторы Нет Нет Нет Нет Нет Да
Собственные целые числа Нет Нет Нет Нет Нет Да

См. также

[ редактировать ]
  1. ^ «Написание шейдеров HLSL в Direct3D 9» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  2. ^ «Язык шейдеров высокого уровня (HLSL)» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  3. ^ «Fusion Industries :: Часто задаваемые вопросы по Cg и HLSL ::» . 24 августа 2012 г. Архивировано из оригинала 24 августа 2012 г.
  4. ^ «Объекты шейдерной модели 5.1» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  5. ^ «Модель шейдера HLSL 6.0» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  6. ^ Перейти обратно: а б с д и ж «Различия пиксельных шейдеров» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  7. ^ Перейти обратно: а б с д и Пипер, Крейг; Митчелл, Джейсон Л. (июль 2003 г.). «Введение в язык шейдеров высокого уровня DirectX 9» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  8. ^ Перейти обратно: а б с Шимпи, Ананд Лал . «NVIDIA представляет GeForce FX (NV30)» . АнандТех . Проверено 22 февраля 2021 г.
  9. ^ Уилсон, Дерек. «ATI Radeon X800 Pro и XT Platinum Edition: появление R420» . АнандТех . Проверено 22 февраля 2021 г.
  10. ^ Перейти обратно: а б Модель шейдеров 3.0, Ашу Реге, NVIDIA Developer Technology Group, 2004 г.
  11. ^ Перейти обратно: а б Система Direct3D 10, Дэвид Блайт, Microsoft Corporation, 2006 г.
  12. ^ Перейти обратно: а б «Регистры — ps_4_1» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  13. ^ Перейти обратно: а б «Регистры — ps_5_0» . Документы Майкрософт . Проверено 22 февраля 2021 г.
  14. ^ Перейти обратно: а б с д «Различия вершинных шейдеров» . Документы Майкрософт . Проверено 22 февраля 2021 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9b289b68a5feb3faae004f5d2a50cfdb__1723023960
URL1:https://arc.ask3.ru/arc/aa/9b/db/9b289b68a5feb3faae004f5d2a50cfdb.html
Заголовок, (Title) документа по адресу, URL1:
High-Level Shader Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)