GLM变换矩阵

2023-09-25  本文已影响0人  可不期诺Cappuccino

变换方式包括旋转、平移、缩放。

当多种变化叠加影响时按照从后到前的方式进行运算

矩阵运算不满足交换律

例如:
从移动,再绕z轴逆时针旋转一个角度,最后将其缩放0.5倍

glm::mat4 trans(1.0f);
trans = glm::scale(trans, glm::vec3(0.5,0.5,0.5));
trans=  glm::rotate(trans,M_PI/2,glm::vec3(0.0,0.0,1.0));
trans=  glm::transform(trans,glm::vec3(0.5,0.5,0.5));

或者写作如下方式

glm::mat4 identity(1.0f);
glm::mat4 scalmat= glm::scale(identity, glm::vec3(0.5,0.5,0.5));
glm::mat4 rotatemat=  glm::rotate(identity,M_PI/2,glm::vec3(0.0,0.0,1.0));
glm::mat4 transformmat=  glm::transform(identity,glm::vec3(0.5,0.5,0.5));
trans =scalmat * rotatemat *transformmat; 
上一篇 下一篇

猜你喜欢

热点阅读