聚合类型 - 向量

本文详细介绍了OpenGL ES着色语言中的向量概念及其应用,包括向量的定义、基本类型、初始化方法以及如何通过向量操作颜色、位置等属性。
聚合类型-----(向量 ) 
(1) 什么是向量 
标量 :也被称为“无向量”其值只有大小,并不具有方向。 
OpenGL ES着色语言支持的标量类型有布尔型(bool)、整形(int)和浮点型(float)。 
向量OpenGL ES着色语言中,向量可以看做是用同样类型的标量组成 
其基本类型也分为boolintfloat三种。 每个向量可以由2个、3个、4个相同的标量组成 
(2) 向量作用
向量在着色器代码的开发中的作用: 
可以很方便的存储以及操作颜色、位置、纹理坐标等不仅包含一个组成部分的量。 
开发中,有时可能需要单独访问向量中的某个分量, 
基本的语法为 “<向量名>.<分量名>”。 
总结:GLSL的基本类型可以进行合并,从而与核心OpenGL··的数据类型相匹配,以及简化计算过程的操作。  

(3) 向量 基本类型
基本类型 
2D向量 
3D向量 
4D向量 
float 
vec2  (包含了2个32位浮点数的向量 
vec3 
vec4 
double 
(集成的显卡好像不行,只能独立卡) 
dvce2(包含了2个64位浮点数的向量 
dvce3 
dvce4 
int 
ivec2  (包含了2个整数的向量) 
ivec3 
ivec4 
uint 
uvec2  (包含了2个无符号整数的向量) 
uvec3 
uvec4 
bool 
bvec2  (包含了2个布尔数的向量 
bvec3 
bvec4 
 
(4) 向量的初始化
向量初始化: 
1、使用这些类型声明的变量的初始化过程   与   标量部分是类似的 
例如:(声明一个包含了3个32位浮点数的向量
vec3 velocity=vec3( 0.0,2.0,3.0 ); 
2、类型之间也可以进行等价转换 
例如:(将一个包含了3个32位浮点数的向量  等价转换为  一个包含3个整数的向量) 
  vec3 velocity=vec3( 0.0,2.0,3.0 );     
  ivec3 steps =ivec3 (velocity); 
3、向量的构造函数还可以用来截短或者加长一个向量。 
如果我们将一个较长的向量传递给一个较短向量的构造函数,那么向量将会被自动 取短到对应的长度 
例如:  
截短:   (将一个包含了4个32位浮点数的向量 截短成  一个包含3个32位浮点数的向量) 
vec4 color;//RGB A 
vec3 RGB=vec3 (color);//现在RGB只有前三个分量了 
 
  加长(将一个包含了3个32位浮点数的向量  加长为  一个包含4个32位浮点数的向量) 
vec3 white=vec3(1.0); //white=(1.0,1.0,1.0) 
vec4 translucent=vec4 (white,0); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值