/***
* glm中矩阵是行优先存储的,这不同于opengl默认的以列优先存储的方式??,以下面矩阵mat为例
* 它是用四个行向量来模拟存储四个行:vec4 value[4],其中
* value[0] = (1,0,0,0) = (m[0][0],m[0][1],m[0][2],m[0][3])
* value[1] = (0,1,0,0) = (m[1][0],m[1][1],m[1][2],m[1][3])
* value[2] = (0,0,1,0) = (m[2][0],m[2][1],m[2][2],m[2][3])
* value[3] = (1,1,1,1) = (m[3][0],m[3][1],m[3][2],m[3][3])
* 这个存储与opengl从直观看是不一样的,它的平移部分存储到了第四行,而不是第四列,与DX的写法一致
*/
glm::mat4 mat = mat4(
, , , ,
, , , ,
, , , ,
, , ,
); glm::vec4 v(, , , ); /***
* 矩阵与向量向乘规则,遵守opengl的谁在前谁是列向量的规则
* 矩阵在前则矩阵看成是四个列向量,向量在后则为一个行向量
* 向量在前则向量看成一个列向量,矩阵在后则视为四个行向量
*/
/***
* 【矩阵与向量相乘,一般的用法是矩阵在左向量在右】
* 如下运算是把mat看作四个列向量,V看作行向量:(1*1+0*2+0*3+1*1, 0*1+1*2+0*3+1*1, 0*1+0*2+1*3+1*1, 0*1+0*2+0*3+1*1) = (2,3,4,1)
*/
auto vt = mat * v; //结果是(2,3,4,1) mat4 m2(
, , , ,
, , , ,
, , , ,
, , ,
); /***
*【总结】
* 1, glm中矩阵的存储是按行存储的,与DX一致
* 2, glm中左矩阵右向量的乘法=DX的左向量右矩阵乘法
* 由以上两点可以,在使用glm库时只需要注意矩阵与向量的写法,内部原理与运算可按DX来看
* 比如上面的运算按DX来算
* (1,2,3,1) * (1,0,0,0) = (1*1+2*0+3*0+1*1,1*0+2*1+3*0+1*1, 1*0+2*0+3*1+1*1, 1*0+2*0+3*0+1*1) = (2,3,4,1)
(0,1,0,0)
(0,0,1,0)
(1,1,1,1)
*/ //translate运算是将1,2,3 添加到矩阵的第四行,结果为value[3] = 1,2,3,1
auto m3 = glm::translate(vec3(, , ));

最新文章

  1. 洛谷 P1031 均分纸牌 Label:续命模拟QAQ
  2. Unity3D深入浅出 - 新版粒子系统 (Shuriken) - Tonge
  3. aspose.cell制作excel常见写法
  4. 返璞归真vc++之感言
  5. Oracle Where查询语句与排序语句
  6. Endnote X6 如何修改输出格式(output style)成为自己想要的输出格式:
  7. mongodb分页优化
  8. java 科学计算库
  9. python运用中文注释时报错解决方法
  10. iOS 面试题、知识点 之一
  11. [HNOI 2004]敲砖块
  12. DAY1 VS2017&CUDA10.01环境搭建
  13. Spring Boot 返回 JSON 数据,一分钟搞定!
  14. javascript dom页面中的location属性
  15. 【repost】前端学习总结(二十三)——前端框架天下三分:Angular React 和 Vue的比较
  16. 短网址服务(TinyURL)生成算法
  17. iOS的动态代理模式的实现
  18. Turning off “Language Service Disabled” error message in VS2017
  19. C++---String类小结
  20. int类型转string类型c++

热门文章

  1. XLS导出的服务器端配置方式
  2. [luogu5339] [TJOI2019]唱、跳、rap和篮球(容斥原理+组合数学)(不用NTT)
  3. [LeetCode] 210. 课程表 II
  4. Scrapy 教程(九)-日志系统
  5. 最长上升子序列(LIS) Medium1
  6. 【问题解决方案】visudo: /etc/sudoers is busy, try again later
  7. Elastic Search闪退问题
  8. Eclipse Git分支实战
  9. java程序员究竟应该掌握点什么
  10. mysql远程连接只显示部分数据库问题