文档章节

推荐 OpenGL C Math 数学库

ylme
 ylme
发布于 2017/03/19 23:06
字数 391
阅读 560
收藏 2

我平常自己写点小东西都是用的 GLM(OpenGL Mathematics)数学库。GLM 功能很强大,也很方便用,直接包含在项目中编译即可。但是文件太多,有时候想写个小例子只用到其中个别函数,而不得不把整个库的代码都拉过来,而且最重要的是我个人更喜欢 c ,很多时候因为用 GLM 不得不采用 cpp 语法。所以就从网上搜索了一下,找了三个 c 代码的数学库。

linmath

linmath 功能相对很多,我当时搜索时是在 stackoverflow 上找到的,作者在回答时推荐了自己的这个库,还说有奇怪的 bug ,所以我没有用,不过我蛮喜欢这个库中对于 c macro 的使用。

kazmath

kazmath 功能很全面,作者也是大名鼎鼎。看介绍说 Cocos2d 也参考了这个库。

math3d_h

math3d STB style 。单个头文件即可使用。我用的就是这个库。这个库代码超级简洁。而且包含了完整的单元测试。下面是简单的代码片段。这个文件中只包含了两个类型 vec3_tmat4_t 。矩阵与 vector 相乘时有函数 m4_mul_posm4_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);

© 著作权归作者所有

共有 人打赏支持
ylme
粉丝 11
博文 40
码字总数 41754
作品 0
广州
程序员
私信 提问
OpenGL学习入门之VS2010环境配置 [转]

OpenGL开发环境简介    基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:WINDOWSSYSTEM32目录下(这里假定用户将W...

IMGTN
2012/07/24
0
0
OpenGL ES Programming Guide for iOS 第一章

关于OpenGL ES Open Graphics Library(OpenGL)用于二维及三维数据的可视化。它是一种多用途的开放标准图形库,支持二维和三维数位内容创作,机械和建筑设计,虚拟样,飞行模拟,游戏,以及更...

长平狐
2012/10/08
459
0
【转载】OpenGL C#绘图环境配置

OpenGL简介 OpenGL作为一种图形学编程接口已经非常流行, 虽然在大型游戏方面DirectX有一定的市场占有率, 但由于OpenGL的开放性,可移植性等优点,OpenGL已经成了一种图形学方面的标准。 由...

venorie
2013/06/17
0
0
OpenGL基础概念(学习记录)

各平台渲染标准: win32 : OpenGL ,DirectX android: Skia/Canvas (安卓SDK,2d) , OpenGL ES +NDK mac/ios :Quartz2D,OpenGL ES Linux: OpenGL wp7:DirectX win8/wp8 : DirectX 游戏引擎基于......

Frank_何益明
11/26
0
0
Linux(Ubuntu) OpenGL 开发环境

Linux(Ubuntu) OpenGL 开发环境 在 PC 平台上开发 OpenGL 可以使用的辅助工具有很多选择,这里我主要参考了 learnopengl 的配置,使用 GLFW 和 GLAD. 准备 基本编译库 需要 OpenGL 库 GLFW 操...

皮斯卡略夫
09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

重构系统的套路-面向对象设计原则

前言 一讨论系统重构,很多人不明所以的就开始画各种架构图,写各种高可用,高并发设计方案,其实不知道很多系统的腐朽是从代码失控开始的,所以重构系统之前,架构师需要深谙面向对象设计之...

春哥大魔王的博客
9分钟前
1
0
Private Cloud和On-Premise区别

大家常常听到Private Cloud和On-Premise两个术语,下面通过相关背景介绍区分两者的差别: Private Cloud定义 维基百科云计算 词条中解释了Private Cloud,其含义为“Private cloud is cloud ...

突突突酱
9分钟前
0
0
Linux-ubuntu学习(第一天)

Linux第一天 1.Linux与Windows的区别 Windows是桌面OS。Linux是作为服务器的OS。Linux作为服务器是更安全更稳定的。 2.虚拟机的理解 学习java的时候有个java虚拟机JVM。如果想要在windows上运...

柠檬果过
20分钟前
0
0
以太坊应用开发接口:JSON RPC API

以太坊应用开发接口指的是以太坊节点软件提供的API接口,去中心化应用可以利用这个接口访问以太坊上的智能合约。以太坊应用开发接口采用JSON-PRC标准,通常是通过HTTP或websocket提供给应用程...

汇智网教程
29分钟前
3
0
排序--二分插入排序

二分插入排序是对直接插入排序的一个优化,在排序--直接插入排序中已经分析过直接插入排序的最坏时间复杂度是平方级别的,二分插入排序则是通过二分查找对寻找插入位置进行了优化,在找到插入...

FAT_mt
40分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部