GLM库的使用

2020-10-28  本文已影响0人  凉夜lrs

简介

OpenGL没有内建矩阵运算方法,常用的第三方库为GLM。GLM是OpenGL Mathematics的缩写。作为一个header only库,GLM只要包括了相应的头文件就可以使用它提供的类和函数。GLM是C++语言编写的,故不适用于C语言工程。

OpenGL Mathematics (GLM) 是基于OpenGL着色语言(GLSL)规范的图形软件的头文件C ++数学库。提供的类和函数使用与GLSL相同的命名约定和功能设计和实现,因此任何知道GLSL的人都可以在C++中使用GLM。这个项目不限于GLSL的功能。基于GLSL扩展约定的扩展系统提供扩展能力:矩阵变换,四元数,数据打包,随机数,噪声等等。这个库与OpenGL完美地工作,但它也确保与其他第三方库和SDK的互操作性。它是软件渲染(光线追踪/光栅化),图像处理,物理模拟和任何需要简单方便的数学库的开发上下文的良好候选。

GLM是用C ++ 98编写的,但是当编译器支持时可以利用C ++ 11。它是一个没有依赖的平台独立库,它正式支持以下编译器:

头文件

GLM常用数据类型

GLM常用函数

// 可以这样使用:
glm::vec3 a = { 3.0, 2.0, 3.0 };
glm::vec3 b = { 1.0, 0.0, 3.0 };
glm::vec3 c = glm::normalize(a*b);
// 或者:
glm::normalize(a); // 直接单位化,这里直接修改了参数a
// 但不能这么使用:
glm::vec3 b=glm::normalize(c);

GLM矩阵的默认构造

GLM库从0.9.9版本起,默认会将矩阵类型初始化为一个零矩阵(所有元素均为0),而不是单位矩阵。如果使用0.9.9及以上的版本,需要在声明矩阵时传入参数1,例如glm::mat4 mat(1.0f)。

转载

https://blog.csdn.net/qq_40565033/article/details/107716760
https://blog.csdn.net/JuniorChestnut/article/details/106054005

上一篇 下一篇

猜你喜欢

热点阅读