文档章节

推荐 OpenGL C Math 数学库

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

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我平常自己写点小东西都是用的 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
粉丝 17
博文 48
码字总数 53072
作品 0
广州
程序员
私信 提问
OpenGL学习入门之VS2010环境配置 [转]

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

IMGTN
2012/07/24
329
0
2019年春季学期:学习资料汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BeerBread134/article/details/88086608 算法设计与分析 数字图像处理 教材 冈萨雷斯-数字图像处理(MATLAB版...

陶晨毅
03/03
0
0
OpenGL ES Programming Guide for iOS 第一章

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

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

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

venorie
2013/06/17
747
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_何益明
2018/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

网易易盾深度学习模型工程化实践

深度学习大热之后受到大量关注,大部分刚接触深度学习的同学,注意力大都集中在如何调整参数/数据/网络结构,如何达到预期的精度/召回率/准确率等。 然而,深度学习模型应用的整个流程里面还...

网易易盾
5分钟前
2
0
hibernate meger

转: 在Hibernate中,有save、persist、savaOrUpdate、merge等方法有插入数据的功能。前三者理解起来较后者容易一些,merge方法从api中的介绍就看以看出它是最复杂的。下面是Hibernateapi中的...

牛po
11分钟前
3
0
人们为什么在Python脚本的第一行上编写#!/ usr / bin / env python shebang?

在我看来,如果没有该行,文件运行相同。 #1楼 您可以使用virtualenv尝试此问题 这是test.py #! /usr/bin/env pythonimport sysprint(sys.version) 创建虚拟环境 virtualenv test2.6 -p ...

技术盛宴
15分钟前
3
0
售后服务

售后服务 买家如何申请售后服务? 1、功能路径 个人中心-我的订单-已完成-申请售后 2、操作流程 1、进入个人中心,找到订单 2、点击详情,进入订单详情页 3、点击申请售后,填写退款信息 ...

Geek-Chic
32分钟前
2
0
密码加密与微服务鉴权JWT详细使用教程

[TOC] 1.1、了解微服务状态 微服务集群中的每个服务,对外提供的都是Rest风格的接口,而Rest风格的一个最重要的规范就是:服务的无状态性。 什么是无状态? 1.服务端不保存任何客户端请求者信...

庭前云落
37分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部