OpenGL ES着色器语言规范 5 操作符和表达式(5.1-5.3)
目录
5 操作符和表达式
5.1 操作符
OpenGL ES着色语言具有以下运算符。
优先级 | 操作说明 | 操作符 | 顺序 |
---|---|---|---|
1(最高) | 括号分组 | ( ) | NA |
2 |
数组下标 函数调用和构造器 成员选择与混合 自加1 自减1 后缀 |
[ ] ( ) . ++ -- |
从左到右 |
3 |
自加1 自减1 前缀 一元运算符 |
++ -- + - ~ ! |
从右到左 |
4 | 乘法、除法、取余 | * / % | 从左到右 |
5 | 加法、减法 | + - | 从左到右 |
6 | 左移 右移 | << >> | 从左到右 |
7 | 关系运算符 | < > <= >= | 从左到右 |
8 | 等于 不等于 | == != | 从左到右 |
9 | 按位与 | & | 从左到右 |
10 | 按位异或 | ^ | 从左到右 |
11 | 按位或 | | | 从左到右 |
12 | 逻辑与 | && | 从左到右 |
13 | 逻辑异或 | ^^ | 从左到右 |
14 | 逻辑或 | | | | 从左到右 |
15 | 选择 | ? : | 从右到左 |
16 | 赋值运算符 | = += -= *= /= %= <<= >>= &= ^= |= |
从右到左 |
17(最低) | 按顺序排列 | , | 从左到右 |
没有地址操作符或解除引用操作符。 没有类型转换运算符,而是使用构造函数(例如int类型值1,转成float类型的值:float(1) )。
5.2数组下标
数组元素通过数组下标操作符([ ])进行访问.这是操作数组的唯一操作符,举个访问数组元素的栗子:
diffuseColor += lightIntensity[3] * NdotL;
5.3函数调用
如果函数返回一个值,那么对该函数的调用可以用作表达式,其类型将是用于声明或定义函数的类型。
函数定义和调用约定在第6.1节“函数定义”中讨论。
版权:https://blog.****.net/flycatdeng/article/details/88983973