加载中…
个人资料
ljfdestiny
ljfdestiny
  • 博客等级:
  • 博客积分:0
  • 博客访问:330,087
  • 关注人气:47
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

OpenGL模型矩阵——旋转、缩放、平移乘法前后顺序

(2015-08-31 14:25:52)
分类: OpenGL
参考:http://stackoverflow.com/questions/12838375/model-matrix-in-glm

OpenGL中的乘法顺序:
P * V * M * 3DPoint

M中包含旋转、缩放、平移等操作,记住这些操作需要按顺序,因为矩阵乘法不满足交换律,具体的可以再百度一下;

再回顾上述的OpenGL的乘法顺序,这里所写的只是OpenGL编程时候的顺序,OpenGL是左乘的,所以实际对应的是:
3DPoint * M * V * P

按照这个顺序去看,在M中包含的模型操作,距离3DPoint越近的操作先执行; 
例如:理想状态下,一个操作需要通过  缩放、旋转最后平移达到目的,那么 推导出:

3DPoint * M缩放 * M旋转 * M平移 * V * P//这个是实际操作顺序

但在OpenGL中写出来就应该相反:
P * V * M平移 * M旋转 * M缩放 * 3DPoint//才能得到正确结果

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有