GLSL语法要点总结:变量、矩阵、采样器和限定符
需积分: 10 65 浏览量
更新于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中的限定符类似,放在变量类型之前,并且只能用于全局变量。
1407 浏览量
523 浏览量
295 浏览量
225 浏览量
2015-11-20 上传
131 浏览量

李二二
- 粉丝: 8
最新资源
- 实现类似百度的邮箱自动提示功能
- C++基础教程源码剖析与下载指南
- Matlab实现Franck-Condon因子振动重叠积分计算
- MapGIS操作手册:坐标系与地图制作指南
- SpringMVC+MyBatis实现bootstrap风格OA系统源码分享
- Web工程错误页面配置与404页面设计模板详解
- BPMN可视化示例库:展示多种功能使用方法
- 使用JXLS库轻松导出Java对象集合为Excel文件示例教程
- C8051F020单片机编程:全面控制与显示技术应用
- FSCapture 7.0:高效网页截图与编辑工具
- 获取SQL Server 2000 JDBC驱动免分数Jar包
- EZ-USB通用驱动程序源代码学习参考
- Xilinx FPGA与CPLD配置:Verilog源代码教程
- C#使用Spierxls.dll库打印Excel表格技巧
- HDDM:C++库构建与高效数据I/O解决方案
- Android Diary应用开发:使用共享首选项和ViewPager