适用于游戏引擎的最佳C ++数学库?[关闭]


18

我正在为我的游戏引擎寻找具有以下功能的快速开源C ++数学库:

  • 快速(sse?)
  • 向量
  • 矩阵
  • 四元数

适用于opengl和DirectX


1
我不明白为什么数学库仍然依赖于图形API。:P
共产党鸭子

3
afaik opengl使用列主矩阵和DirectX行主矩阵。因此,如果图书馆同时支持这两种方法,那就太好了
pragmascript

1
在GL中,您始终可以设置转置矩阵,而在DX中,可以在着色器中指定布局。手动调整也没什么大不了的。
2011年

1
平台在这里很重要,因为要使数学库很容易在PC上运行,而在控制台上却很糟糕,反之亦然。
Kylotan'3

Answers:


11

XNA Math可能适合您。它是仅标头的C ++数学库,该库随最新的DirectX SDK一起分发并使用SSE内在函数。我不能过多地谈论它的性能,但是从我所读到的内容来看,它似乎相当不错。

XNA数学参考

XNA Math编程指南

DX SDK下载

编辑:我也不确定许可条款。DX SDK Eula指出“可分发代码”可能不是

“在Windows,Xbox和Windows Mobile平台以外的平台上运行;”

我不确定这是否适用于xna数学,因为只有示例和实用程序代码被明确标记为“可分发代码”


我对XNA的许可条款一无所知,例如可以在非Microsoft操作系统中使用它们。就是说,我曾经在某个软件渲染项目中使用过d3dx数学库(几乎是同一件事),因此它在任何方面都不依赖于Directx。
Jari Komppa

1
澄清:d3dx数学在许可条款上可能几乎是同一件事-尽管在实现方面却有所不同。根据SDK文档,d3dx数学在很大程度上依赖于内联和通过指针传递,而xnamath则依赖于SIMD和内在函数。
Koarl'3

14

我们使用OpenGL数学

即使顾名思义它仅适用于OpenGL,我也没有理由认为它不适用于DirectX。它是仅标头的库,易于使用,并且非常积极地进行了更新。

一探究竟。


2
使用MIT许可证
Jari Komppa

5

尽量 -快速,表达模板,矢量化,易于使用,并且在协议授权MPL2



1

Sony的vectormath库(用作Bullet Physics的一部分)可以满足您的所有要求。将其与Bullet分开需要进行一些工作,但没有什么严重的-它不依赖于bullet,只是没有人正式将其打包。

项目符号树中当前的版本支持SSE优化,并具有C ++接口。

较旧的版本(可能现在不支持)也支持SOA格式和纯C接口。


1
好像是zlib / libpng许可证。
Jari Komppa

我对此很感兴趣。您提到分离中涉及某些工作,您是否需要进行任何链接或其他信息?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.