一、着色语言基础
标量也被称为“无向量”其值只有大小,并不具有方向。标量之间的运算遵循简单的代数法则,如质量、密度、体积、时间以及温度等都属于标量。OpenGL ES着色语言支持的标量类型有布尔型(bool)、整形(int)和浮点型(float)。
2. 向量
OpenGL ES着色语言中,向量可以看做是用同样类型的标量组成,其基本类型也分为bool、int和float三种。每个向量可以由2个、3个、4个相同的标量组成,具体情况如下:
向量在着色器代码的开发中有着十分重要的作用,可以很方面的存储以及存储颜色、位置、纹理坐标等不仅包含一个组成部分的量。开发中,有时可能需奥单独访问向量中的某个分量,基本的语法为“<向量名>.<分量名>”,根据目的的不同,主要有以下几种用法:
将一个向量看做颜色时,可以使用r,g,b,a四个分量名,分别代表红、绿、蓝、透明度4个色彩通道。
数据类型概述
1. 标量标量也被称为“无向量”其值只有大小,并不具有方向。标量之间的运算遵循简单的代数法则,如质量、密度、体积、时间以及温度等都属于标量。OpenGL ES着色语言支持的标量类型有布尔型(bool)、整形(int)和浮点型(float)。
2. 向量
OpenGL ES着色语言中,向量可以看做是用同样类型的标量组成,其基本类型也分为bool、int和float三种。每个向量可以由2个、3个、4个相同的标量组成,具体情况如下:
向量类型 | 说明 | 向量类型 | 说明 |
vec2 | 包含了2个浮点数的向量 | ivec4 | 包含了4个整数的向量 |
vec3 | 包含了3个浮点数的向量 | bvec2 | 包含了2个布尔数的向量 |
vec4 | 包含了4个浮点数的向量 | bvec3 | 包含了3个布尔数的向量 |
ivec2 | 包含了2个整数的向量 | bvec4 | 包含了4个布尔数的向量 |
ivec3 | 包含了3个整数的向量 |
将一个向量看做颜色时,可以使用r,g,b,a四个分量名,分别代表红、绿、蓝、透明度4个色彩通道。