2. OpenGL ES 编程语言数据类型
- 计算机图形学中,转换有两种基本的数据类型:矢量和矩阵。这也是 OpenGL ES编程语言的中心类型。
- 标量、矢量、矩阵数据类型
变量类型 | 种类 | 描述 |
---|---|---|
Scalars | float,int,bool | 标量数据类型浮点数、整形数、布尔值 |
Floating-point Vectors | float,vec2,vec3,vec4 | 浮点型矢量,1、2、3、4维 |
Integer Vector | int,ivec2,ivec3,ivec4 | 整型矢量,1、2、3、4维 |
Boolean vector | int,ivec2,ivec3,ivec4 | 布尔矢量,1、2、3、4维 |
Matrices | mat2,mat3,mat4 | 浮点类型矩阵2x2,3x3,4x4 |
- 变量必须先声明,与C/C++语法类似,像下面一样
float specularAtten; // A floating-point-based scalar
vec4 vPosition; // A floating-point-based 4-tuple vector
mat4 mViewProjection; // A 4 x 4 matrix variable declaration
vec2 vOffset; // An integer-based 2-tuple vector
- 变量可以在声明时初始化,或以后初始化,初始化是通过构造函数,也可以做类型转换:
- 标量数据在初始化时赋值
float myFloat = 1.0;
bool myBool = true;
int myInt = 0;
myFloat = float(myBool); // Convert from bool -> float
myFloat = float(myInt); // Convert from int -> float
myBool = bool(myInt); // Convert from int -> bool
- 初始化矢量类型
如果输入的是标量,标量值赋给矢量的所有参数。
如果输入是多个标量或者是矢量,从左到右设置矢量变量的参数,如果多个矢量作为参数,那么矢量里要有至少输入矢量个数的参数。