GLSL语法要点总结:变量、矩阵、采样器和限定符
需积分: 10 10 浏览量
更新于2024-08-30
收藏 3KB TXT 举报
关于GLSL常量整理
GLSL(Graphics Library Shading Language)是一种基于C语言的高级着色语言,用于编写图形处理单元(GPU)上的着色器程序。在GLSL中,常量是指在着色器程序中使用的基本数据类型和复杂数据类型。下面是GLSL中常量的整理。
标量(Scalar)
在GLSL中,标量只有三种:bool、int和float。bool类型用于表示布尔值,int类型用于表示整数,float类型用于表示浮点数。
向量(Vector)
GLSL中有九种向量类型:vec2、vec3、vec4、ivec2、ivec3、ivec4、bvec2、bvec3和bvec4。其中,vec2、vec3和vec4用于表示浮点数向量,ivec2、ivec3和ivec4用于表示整数向量,bvec2、bvec3和bvec4用于表示布尔向量。
矩阵(Matrix)
GLSL中有三种矩阵类型:mat2、mat3和mat4,分别用于表示2x2、3x3和4x4矩阵。
采样器(Sampler)
GLSL中有五种采样器类型:sampler1D、sampler2D、sampler3D、samplerCube和sampler1DShadow、sampler2DShadow。采样器用于访问纹理数据,例如访问一维、二维、三维和立方体纹理。
结构体(Struct)
GLSL中的结构体与C/C++中的结构体类似,用于定义一个复杂的数据类型。例如:
```glsl
struct Light {
vec4 position;
vec3 color;
};
```
数组(Array)
GLSL中的数组可以是固定大小的,也可以是不固定的。例如:
```glsl
vec4 points[10]; // 创建一个10个元素的数组
vec4 points[]; // 创建一个不指定大小的数组
points[2] = vec4(1.0); // points现在大小为3
points[7] = vec4(2.0); // points现在大小为8
```
空类型(Void)
GLSL中的空类型用void表示,仅用于声明不返回任何值的函数。
限定符(Qualifier)
GLSL中的限定符用于限定变量的作用域和生命周期。有四种限定符:attribute、uniform、varying和const。
* attribute:用于限定变量在每个顶点上的值不同,例如顶点颜色、坐标等。
* uniform:用于限定变量在所有顶点上的值相同,例如光源位置、统一变换矩阵等。
* varying:用于限定变量在顶点着色器和片元着色器之间传递,例如顶点坐标、颜色等。
* const:用于限定变量为常量,例如π、e等数学常数。
在GLSL中,限定符与Java中的限定符类似,放在变量类型之前,并且只能用于全局变量。
323 浏览量
337 浏览量
点击了解资源详情
290 浏览量
221 浏览量
2013-08-24 上传
2015-11-20 上传

李二二
- 粉丝: 8
最新资源
- cports: 强大的端口监测和管理工具
- CSerialPort v1.30:多串口、MFC支持及代码优化
- 51单片机射击游戏的Proteus仿真设计流程
- Andorid开发教程:植物大战僵尸Day03视频解析
- 海茵兰茨光电编码器11-58SN技术规格与安装指导
- LeetCode官方面试题目解析:算法进阶指南
- 深入解析Java设计模式及其源码工具应用
- 深入理解ECMAScript:JavaScript的核心技术
- Ragel机器状态机语言:多种语言输出支持与使用案例
- 51单片机实现LCD12864开机画面仿真技术
- 新年发财PPT模板,迎接财源滚滚新年
- 软件工程师编码实践:实现捐赠者短信互动系统
- LeetCode算法题解及二分查找和递归技巧详解
- Struts2结合Freemarker实现XML文本生成指南
- PowerBuilder实现不依赖OUTLOOK的邮件发送功能
- Spring框架定时任务必备的jar包列表