Графические технологии и языки программирования


Графические технологии исторически первыми использовались для программирования ГПУ. Когда направление ОВГПУ начало интенсивно развиваться, программы писались при помощи подхода потокового программирования с использованием этих библиотек и шейдерных языков. С появлением низкоуровневых средств программирования графические технологии отошли на второй план. Сейчас они используются в приложениях, где высокая производительность требуется именно для решения графических задач, а также в приложениях, где требуется высокий уровень совместимости. К таким приложениям относятся:

  • Обработка изображений и видео;
  • Визуальные эффекты в компьютерных играх;
  • Программирование графического интерфейса пользователя.

Графическая технология программирования включает в себя интерфейс программирования трехмерной графики и язык написания шейдеров. В настоящее время существует два интерфейса программирования трехмерной графики: OpenGL и DirectX. Каждый из них имеет свой собственный шейдерный язык: у OpenGL это GLSL, у DirectX - HLSL. Помимо этого, существует шейдерный язык Cg, разработанный компанией NVidia и поддерживаемый как в OpenGL, так и в DirectX. Любой современный шейдерный язык представляет собой C-подобный язык программирования, из которого исключены указатели и добавлены специфические для ГПУ типы данных и операции.

Достоинства графических технологий программирования

  • Высокий уровень переносимости между ГПУ (с сохранением эффективности)

Недостатки графических технологий программирования

  • Интерфейс программирования не предназначен для высокопроизводительных вычислений
  • Нет явной возможности работы с несколькими ГПУ
  • Только динамическая компиляция шейдера

Технология OpenGL


Технология DirectX


Шейдерный язык Cg


© Лаборатория Параллельных информационных технологий НИВЦ МГУ
Rambler's Top100