在OpenGL中,矩阵运算通常使用GLM(OpenGL Mathematics)库来进行。GLM库提供了与OpenGL兼容的数学运算功能,包括矩阵和向量的操作。而在DirectX中,矩阵运算通常使用DirectXMath库。
GLM和DirectXMath都遵循列主序存储矩阵元素,但它们在矩阵乘法的顺序上有所不同:GLM使用的是行向量乘法,而DirectX使用的是列向量乘法。这导致了矩阵乘法的结果可能不同,具体取决于操作顺序。
GLM矩阵乘法
在GLM中,矩阵乘法遵循行向量乘法规则,即:
C=A×B
表示的是矩阵 A 左乘矩阵 B,即第一个矩阵是变换的顺序。
示例代码
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#