聚合类型 - 向量

聚合类型-----(向量 )  
(1)   什么是向量  
标量  :也被称为“无向量”其值只有大小,并不具有方向。 
OpenGL ES着色语言支持的标量类型有布尔型( bool )、整形( int )和浮点型( float )。 
向量 OpenGL ES着色语言中,向量可以看做是用同样类型的标量组成 
其基本类型也分为 bool int float 三种。 每个向量可以由 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、付费专栏及课程。

余额充值