Графические технологии и языки программирования
Графические технологии исторически первыми использовались для программирования ГПУ. Когда направление ОВГПУ начало интенсивно развиваться, программы писались при помощи подхода потокового программирования с использованием этих библиотек и шейдерных языков. С появлением низкоуровневых средств программирования графические технологии отошли на второй план. Сейчас они используются в приложениях, где высокая производительность требуется именно для решения графических задач, а также в приложениях, где требуется высокий уровень совместимости. К таким приложениям относятся:
- Обработка изображений и видео;
- Визуальные эффекты в компьютерных играх;
- Программирование графического интерфейса пользователя.
Графическая технология программирования включает в себя интерфейс программирования трехмерной графики и язык написания шейдеров. В настоящее время существует два интерфейса программирования трехмерной графики: OpenGL и DirectX. Каждый из них имеет свой собственный шейдерный язык: у OpenGL это GLSL, у DirectX - HLSL. Помимо этого, существует шейдерный язык Cg, разработанный компанией NVidia и поддерживаемый как в OpenGL, так и в DirectX. Любой современный шейдерный язык представляет собой C-подобный язык программирования, из которого исключены указатели и добавлены специфические для ГПУ типы данных и операции.
Достоинства графических технологий программирования
- Высокий уровень переносимости между ГПУ (с сохранением эффективности)
Недостатки графических технологий программирования
- Интерфейс программирования не предназначен для высокопроизводительных вычислений
- Нет явной возможности работы с несколькими ГПУ
- Только динамическая компиляция шейдера
Технология OpenGL
- http://www.opengl.org
- Спецификация OpenGL версии 2.1 (pdf)
- Спецификация языка шейдеров GLSL версии 1.20.8 (pdf)
Технология DirectX
Шейдерный язык Cg
© Лаборатория Параллельных информационных технологий НИВЦ МГУ