这篇文章主要用来记录我见过的开源库,只记录最突出特点,方便以后用时查询。
1. 3D图形引擎
openGL,事实上的图形学工业标准,提供图形学底层接口,直接使用openGL,对编程有较高要求。
openInventor , 对openGL简单地进行了封装,连添加节点地步骤也和openGL相似,不过是由类来操作,更直观一些。目前已经很少人用。
OSG , 基于openGL的3d图形引擎,团队有200多人。一个功能覆盖比较全面的openGL封装,但封装还是不彻底,OSG官方文档也不详细,不过在openGL完全可以找到对应的底层函数。在科学计算方面应用广泛,可以使用最新的软硬件技术。
OGRE , 基于 openGL或 DirectX3D 的3d图形引擎,团队人数是个位。这个引擎专注于渲染,其他模块可以找其他的开源库来支持,灵活性高。封装比OSG更高层。OGRE的场景管理器非常有特色,这个封装将其与OSG的封装程度隔离开来。另外,与OSG相反,OGRE的性能被大量实际工程所验证,适合快速开发商业软件。
Irrlicht , 基于 openGL或 DirectX3D 的3d图形引擎,来自于德国的引擎。 性能优良,不过更新太慢了。
2.数学方面的开源库
EIGEN3,一个开源的C++线性代数库。可以用来处理矩阵、微量、数值求解,并提供相应的算法。
CGAL,一个开源的C++代数几何库。可以用来处理代数几何相关任务。比如判断任意两个空间物体是否相交。
openCASCADE,一个开源的CAD引擎,擅长处理3D建模任务。
3.开源CAD
Draftsight 2D CAD,商业版本,兼容dwg,免费使用,仅需要每年一次邮箱激活
QCAD 2D CAD,这是开源的社区版本,另有收费的商业版本
BRL-CAD 美国陆军使用,三维实体建模系统
FreeCAD 普通用途的2D/3D CAD
sailcut 制作船只的CAD
NaroCAD 参数2D/3D CAD
Archimedes 建筑师使用的CAD
Blender 可以作为CAD使用(使用额外的插件和设置)
PythonCad 2D CAD
Varkon 参数2D/3D CAD
Open CASCADE 几乎所有开源CAD使用的CAD核心,建模能力很强,但其本身显示性能一般。
4。XML
SAX,一个开源的、轻量级的XML工具,最初被java用作XML工具而广泛使用,后来有了其他的接口。
Xerces,Apache的项目,已经有十年的历史,致力于提供高性能、模块化和扩展性。它尽量少使用类模板、
RTTI及#ifdef等宏定义。 http://xerces.apache.org/
Open XML SDK提供了可用于开发Open XMLDocuments(DOCX, XLSX, PPTX)开源类库,具体支持功能如下:
1、可高性能处理生成文字处理文档、电子表格、幻灯片演示文档;
2、支持文档修改,例如删除文档跟踪内容;
3、支持数据和内容查询、提取,例如将Docx文档转换为Html网页格式、或者从电子表格中提取数据。
https://github.com/OfficeDev/Open-XML-SDK
5.语言工具
VRML,(Virtual Reality Modeling Language)是一种使用文本保存图形信息的标准,在CAD系统的保存
格式中常见,已经被广泛使用。mp4格式就是基于它的。http://en.wikipedia.org/wiki/VRML
6.界面工具
Qt 这个不用多说了,非常常用的GUI库,学习快,使用方便。并且跨平台,还有一些非常实用的功能,比如对多线程、数据库、XML、网络等的支持。
CEGUI 也是一个著名的界面库,相对于Qt,它强调界面的个性化。用户使用CEGUI可以制作出非常漂亮的UI,在游戏中使用比较多。
7.安装包制作工具
WIX 这是一个经典的安装包制作工具,但现在用的人少了。
NSIS 一个操作简单、小巧高效的安装包制作工具,推荐。
8.图片处理
Inkscape 一款开源的矢量图制作工具。制作时,直接把jpg、png、bmp等常见格式导入Inkscape,再另存为svg等格式,即完成工作。