OpenGL Shading Language
Это заготовка статьи. Помогите Википедии, дополнив её. |
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.
Ссылки
Статьи
Спецификации
- GLSL Language Specification, Version 1.50
- GLSL Language Specification, Version 1.40
- GLSL Language Specification, Version 1.30
- GLSL Language Specification, Version 1.20
- OpenGL Fragment Shader Specification
- OpenGL Vertex Shader Specification
- OpenGL Shader Objects Specification
- OpenGL Geometry Shader Specification