我的
OpenGL
专题学习目录,希望和大家一起学习交流进步!
- OpenGL学习(一)-- 术语了解
- OpenGL学习(二)-- Xcode 搭建 OpenGL 环境
- OpenGL学习(三)-- OpenGL 基础渲染
- OpenGL学习(四)-- 正面&背面剔除和深度测试
- OpenGL学习(五)-- 裁剪与混合
- OpenGL学习(六)-- 基础纹理
- OpenGL学习(七)-- 基础变化综合练习实践总结
- OpenGL学习(八)-- OpenGL ES 初探(上)
- OpenGL学习(九)-- OpenGL ES 初探(下)GLKit
- OpenGL学习(十)-- 着色语言 GLSL 语法介绍
- OpenGL学习(十一)-- 用 GLSL 实现加载图片
- OpenGL学习(十二)-- OpenGL ES 纹理翻转的策略对比
一、简介
GLSL
(OpenGL Shading Language) 全称 OpenGL 着色语言,是用来在 OpenGL 中着色编程的语言,也即开发人员写的短小的自定义程序,他们是在图形卡的 GPU上执行的,代替了固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性。 GLSL
其使用 C 语言作为基础高阶着色语言,避免了使用汇编语言或硬件规格语言的复杂性。
二、变量命名
GLSL
的变量命名方式与 C 语言类似,可使用字母,数字以及下划线,不能以数字开头。还需要注意的是,变量名不能以 gl_
作为前缀,这个是 GLSL
保留的前缀,用于 GLSL
的内部变量。
三、数据类型
1、基本数据类型
类型 | 描述 |
---|---|
void | 跟 C 语言的 void 类似,表示空类型。作为函数的返回类型,表示这个函数不返回值。 |
bool | 布尔类型,true 或 false,以及可以产生布尔型的表达式。 |
int | 有符号整型 |
uint | 无符号整形 |
float | 浮点型 |
2、特殊类型--纹理采样类型
类型 | 描述 |
---|---|
sampler1D | 用于内建的纹理函数中引用指定的 1D纹理的句柄。只可以作为一致变量或者函数参数使用 |
sampler2D | 二维纹理句柄 |
sampler3D | 三维纹理句柄 |
samplerCube | cube map 纹理句柄 |
sampler1DShadow | 一维深度纹理句柄 |
sampler2DShadow | 二维深度纹理句柄 |
3、聚合类型(向量和矩阵类型)
(1)向量类型
类型 | 描述 |
---|---|
vec2,vec3,vec4 | 2分量、3分量和4分量浮点向量 |
ivec2,ivec3,ivec4 | 2分量、3分量和4分量整数向量 |
uvec2,uvec3,uvec4 | 2分量、3分量和4分量无符号整数向量 |
bvec2,vbec3,bvec4 | 2分量、3分量和4分量布尔向量 |