Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Термины / GLSL (OpenGL Shading Language)

GLSL (OpenGL Shading Language)

GLSL (OpenGL Shading Language, также известен как GLslang) — язык высокого уровня для написания шейдеров. Синтаксис языка базируется на языке программирования ANSI C. GLSL был создан комитетом OpenGL, чтобы позволить разработчикам осуществлять управление конвейером графического процессора без использования ассемблера или какого-либо языка, пригодного только для одного графического процессора.

Основные преимущества GLSL:

  • Переносимость кода между платформами и операционными системами.
  • Возможность разрабатывать шейдеры, которые могут быть использованы на различном оборудовании разных производителей.
  • Каждый производитель оборудования включает компилятор GLSL в драйверы, что позволяет каждому из производителей проводить оптимизации получаемого кода под архитектуру используемой видеокарты.

Кроме линейного выполнения операторов, GLSL поддерживает циклы, ветвления, переходы, а также возможность пользователю определять свои функции. Кроме пользовательских, язык определяет множество встроенных функций, в основном ориентированных на вычисления. GLSL не поддерживает такие элементы языка C как указатели.

GLSL управляется через наборы функций API OpenGL. В разных версиях OpenGL присутствует поддержка различных версий GLSL:

GLSL 1.10 - стал доступен в виде набора расширений GL_ARB_shading_language_100, GL_ARB_shader_objects, GL_ARB_vertex_shader, GL_ARB_fragment_shader в дальнейшем функционал был включён в ядро OpenGL 2.0.
GLSL 1.20 - является частью ядра OpenGL 2.1.
GLSL 1.30 - является частью ядра OpenGL 3.0.
GLSL 1.40 - является частью ядра OpenGL 3.1.
GLSL 1.50 - является частью ядра OpenGL 3.2, помимо вершинных и фрагментных шейдеров присутствует также и геометрический шейдер.
GLSL 3.30 - является частью ядра OpenGL 3.3, с выходом этой версии языка меняется нумерация версий. Теперь она соответствует ядру OpenGL.
GLSL 4.00 - является частью ядра OpenGL 4.0.

Для версий GLSL не поддерживающих геометрические шейдеры (< 1.50) существует расширение GL_EXT_geometry_shader4, которое в дальнейшем, с выходом OpenGL 3.0, достигло ARB статуса GL_ARB_geometry_shader4.

Язык GLSL является аналогом языка HLSL, используемого на платформе Direct3D.

Последняя спецификация GLSL имеет версию 4.00.

Введение в GLSL — статья, описывающая основы использования GLSL.
Категория GLSL — статьи, описывающие эффекты, управляемые GLSL.

Что такое GLSL (OpenGL Shading Language)?

9 ноября 2009

#OpenGL, #шейдеры


Обновление: 29 мая 2010

2001—2017 © GameDev.ru — Разработка игр