推荐 OpenGL C Math 数学库
时间: 2017-03-19来源:OSCHINA
我平常自己写点小东西都是用的 GLM(OpenGL Mathematics)数学库。GLM 功能很强大,也很方便用,直接包含在项目中编译即可。但是文件太多,有时候想写个小例子只用到其中个别函数,而不得不把整个库的代码都拉过来,而且最重要的是我个人更喜欢 c ,很多时候因为用 GLM 不得不采用 cpp 语法。所以就从网上搜索了一下,找了三个 c 代码的数学库。
linmath
linmath 功能相对很多,我当时搜索时是在 stackoverflow 上找到的,作者在回答时推荐了自己的这个库,还说有奇怪的 bug ,所以我没有用,不过我蛮喜欢这个库中对于 c macro 的使用。
kazmath
kazmath 功能很全面,作者也是大名鼎鼎。看介绍说 Cocos2d 也参考了这个库。
math3d_h
math3d STB style 。单个头文件即可使用。我用的就是这个库。这个库代码超级简洁。而且包含了完整的单元测试。下面是简单的代码片段。这个文件中只包含了两个类型 vec3_t 和 mat4_t 。矩阵与 vector 相乘时有函数 m4_mul_pos 和 m4_mul_dir ,分别对应点坐标和矢量坐标,矢量坐标会忽略 w 分量而点坐标不会,具体可以查看实现。 mat4_t viewmat = m4_look_at(vec3((float)sin(t) * radius, 25.0f, (float)cos(t) * radius), vec3(0, -50.0f, 0), vec3(0, 1.0f, 0)); mat4_t persmat = m4_perspective(45.0f, (float)w / (float)h, 0.1f, 1000.0f);
热门排行