OpenGL Shading Language

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Trukhachev (обсуждение | вклад) в 11:05, 12 ноября 2009 ( Новая страница: «{{заготовка}} {{Infobox Software | name = GLSL | logo = | developer = Khronos Group |...»). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
GLSL
Тип язык для программирования шейдеров[вд] и язык программирования
Разработчик Khronos Group
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2004
Последняя версия 1.50.09 (24 июля 2009)
Сайт www.opengl.org

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

Основные преимущества 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 включен в ядро.

OpenGL версия GLSL версия
2.0 1.10
2.1 1.20
3.0 1.30
3.1 1.40
3.2 1.50

Версия 1.50

Добавлена поддержка геометрических шейдеров. Для которых ранее использовались расширения GL_ARB_geometry_shader4, GL_EXT_geometry_shader4.

Описание

Основные типы данных

Тип Описание
void Функции, не возвращающие значения, должны быть описаны как возвращающие void. Ключевое слово void больше нигде не может быть использовано
bool Булев тип, принимающий значения true(правда) или false(ложь)
int Целочисленное число со знаком (signed int).
uint Целочисленное чисто без знака (unsigned int)
float Вещественное скалярное значение
vec2 Двумерный Float вектор
vec3 Трехмерный Float вектор
vec4 Четырехмерный Float вектор
bvec2 Двумерный Boolean вектор
bvec3 Трехмерный Boolean вектор
bvec4 Четырехмерный Boolean вектор
ivec2 Двумерный signed Integer вектор
ivec3 Трехмерный signed Integer вектор
ivec4 Четырехмерный signed Integer вектор
uvec2 Двухмерный unsigned Integer вектор
uvec3 Трехмерный unsigned Integer вектор
uvec4 Трехмерный unsigned Integer вектор
hvec2 Двумерный Half вектор
hvec3 Трехмерный Half вектор
hvec4 Четырехмерный Half вектор
mat2 Матрица 2×2 из вещественных чисел
mat3 Матрица 3×3 из вещественных чисел
mat4 Матрица 4×4 из вещественных чисел
mat2x2 Матрица 2×2 из вещественных чисел
mat2x3 Матрица 2×3 из вещественных чисел
mat2x4 Матрица 2х4 из вещественных чисел
mat3x2 Матрица 3х2 из вещественных чисел
mat3x3 Матрица 3х3 из вещественных чисел
mat3x4 Матрица 3х4 из вещественных чисел
mat4x2 Матрица 4х2 из вещественных чисел
mat4x3 Матрица 4х3 из вещественных чисел
mat4x4 Матрица 4х4 из вещественных чисел

IDE

См. также

Литература

  • Боресков Алексей. Разработка и отладка шейдеров. — БХВ-Петербург, 2006. — 488 с. — ISBN 5-94157-712-5.
  • Боресков Алексей. Расширения OpenGL. — БХВ-Петербург, 2005. — 688 с. — ISBN 5-94157-614-5.

Ссылки

Статьи

Спецификации