聚合类型 - 矩阵

聚合类型-----( 矩阵)  
矩阵在3D开发中的作用  
有一些基础的开发人员都知道,3D场景中的移位、旋转、缩放等变换都是由矩阵的运算来实现的。 
因此3D场景的开发中会非常多的使用矩阵 。 
矩阵类型  
基本类型
矩阵类型
 
2x2的浮点数矩阵
3x3的浮点数矩阵
4x4的浮点数矩阵
float
mat2 ( 或 mat2*2 )
mat3 ( 或 mat3*3 )
mat4 ( 或 mat4*4 )
double
dmat2 ( 或 dmat2*2 )
dmat3 ( 或 dmat3*3 )
dmat4 ( 或 dmat4*4 )
如下例子
 
1.0, 1.0
1.0, 1.0
1.0, 1.0, 1.0
1.0, 1.0, 1.0
1.0, 1.0, 1.0
1.0, 1.0, 1.0, 1.0
1.0, 1.0, 1.0, 1.0
1.0, 1.0, 1.0, 1.0
1.0, 1.0, 1.0, 1.0

矩阵初始化
矩阵初始化:  
1、 矩阵类型需要给出两个维度的信息  
例如:   mat4*4,其中第一个值表示列数,第二个值表示行数。 
2、 矩阵的构建方式  
矩阵的构建方式和我们的向量类似,并且可以将它初始化为一个对角矩阵 或者 完 全填充的矩阵。对于对角矩阵 ,只需要向构造函数传递一个值,矩阵的对角线元素就设置为这个值,其他元素全部设置为0; 
例如: ( 对于矩阵, OpenGL 中矩阵是列主顺序的。如果只传了一个值,则会构造成对角矩阵,其余的元素为 0. ) 
m = mat3(4.0); ↓
4.0
0
0
0
4.0
0
0
0
4.0

当然矩阵也可以通过在构造函数中指定每一个元素的值来构建。 
传入元素可以是标量和向量的集合,只要给定足够的数据就行,每一列的设置方式也遵循这样的原则,也就是说,传入的数据将 首先填充列,然后填充行 。 
  
例如:初始化耦合3*3的矩阵  (以下三种写法效果相同)
mat3 M=mat3(1.0,2.0,3.0, 
     4.0,5.0,6.0, 
     7.0,8.0,9.0); 
----------------------------------------------------------------------------------------------------------- 
vec3 column1=vec3(1.0,2.0,3.0); 
vec3 column2=vec3(4.0,5.0,6.0); 
vec3 column3=vec3(7.0,8.0,9.0); 
mat3 M=mat3(column1,column2,column3); 
----------------------------------------------------------------------------------------------------------- 
vec2 column1=vec2(1.0,2.0); 
vec2 column2=vec2(4.0,5.0); 
vec2 column3=vec2(7.0,8.0); 
mat3 M=mat3(column1,3.0, 
    column2,6.0, 
    column3,9.0); 
这些写法得到的效果都是:( GLSL的矩阵 首先填充列,然后填充行
1.0
4.0
7.0
2.0
5.0
8.0
3.0
6.0
9.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值