GLSL语言–OpenGL Shading Language
无论是OpenGL还是其他图形API的着色器,通常都是通过一种特殊的编程语言去编写的。对于OpenGL来说,我们会使用GLSL,它是在OpenGL2.0版本左右发布的,GLSL与“C”语言非常类似,当然还有一点C++的影子。因为从下一节基本图元的绘制开始,我们就会开始接触到GLSL,所以必须先介绍GLSL。我们主要从以下几个常用的方面介绍:
1. 注释
| 类型 | 符号 |
|---|---|
| 单行注释 | // |
| 多行注释 | /* 内容 */ |
2.基本数据类型
GLSL是一种强类型语言,所有变量都必须事先声明,并要给出变量的类型(如下表)。变量名的命名规范与C语言相同:可以使用字母、数字、以及下划线字符,但是数字不能作为变量名称的第一个字符,此外也不能包含连续的下划线。
| 类型 | 符号 |
|---|---|
| float | 32位浮点数 |
| double | 64位浮点数(使用double时要看是否支持,不支持要看起扩展) |
| int | 有符号二进制补码的32位整数 |
| uint | 无符号的32位整数 |
| bool | 布尔值 |
3. 聚合类型
GLSL的基本类型可以合并,从而与OpenGL的数据类型相匹配。GLSL支持2个、3个以及4个分量的向量,每个分量都可以使用bool、int、uint、float、double这些基本变量,此外GLSL也支持float和double类型的矩阵。具体如下表:
| 基本类型 | 2D向量 | 3D向量 | 4D向量 | 矩阵类型 | 非方阵矩阵 |
|---|---|---|---|---|---|
| float | vec2 | vec3 | vec4 | mat2 mat3 mat4 | mat2x2 mat2x3 mat4x2… |
| double | dvec2 | dvec3 | dvec4 | dmat2 dmat3 dmat4 | dmat2x2 dmat |

本文介绍了OpenGL ES中的GLSL语言,包括顶点着色器和片元着色器。GLSL是一种类似于C的编程语言,用于编写图形处理。内容涵盖了注释、基本数据类型、聚合类型、结构体、数组、存储限制符和常用语句等关键概念。

2505

被折叠的 条评论
为什么被折叠?



