|
1.前言
面向游戏的3D引擎和面向工程的3D引擎有很大的区别:
| 共性 | 异性 | 3D游戏引擎 | 基于OpenGL和DirectX,具备图形渲染功能、碰撞检测等物理特性 | 非参数化模型,角色,AI,音频,行为脚本,特效 | CAD系统 | 精确建模 | |
虽然在仿真可视化等工程领域可以采用开源3D游戏引擎,在轻量级CADCAE图形系统的开发中,其缺少必要的几何内核,CAD基础性开源框架有OPEN CASCADE(http://www.opencascade.org/),这套框架在达索的产品中也有所使用,在这个基础框架上已出现了一些成熟的CAD软件,例如FreeCAD、HeeksCAD和Coin3D等,这些软件也是开源的。
2.开源的CADCAE图形系统
2.1 开源Open CasCade Open CASCADE(Open Computer Aided Software for Computer Aided Design and Engineering)是由法国MDTV(Matra Datavison).公司开发的软件开发平台,主要用于CAD/CAM/CAE开发。包括三维表面和三维实体建模及其视图、数据交换以及快速应用开发。该软件产生于上个世纪九十年代中期,大量应用于各种场合,尤为在数字仿真软件(如AEC和GIS等等)中表现突出。Open CASCADE是一个开源码的几何内核,是为了方便了精细设计所应用的快速设计面向对象的C++类库。基于 Open CASCADE 的CAD系统开发是将 Open CASCADE 类库的二维和三维建模、布尔操作、可视化的特性及 VC++程序实时性好的特点有效地结合,所以Open CASCADE类库可以帮助开发人员进行快速开发。
2.2 FreeCAD
FreeCAD features tools similar to CATIA, SolidWorks or Solid Edge, and therefore also falls into the category of MCAD, PLM, CAx and CAE. It is intended to be a feature-based parametric modeler with a modular software architecture, which makes it easy to provide additional functionality without modifying the core system
网址:http://free-cad.sourceforge.net/
2.3 HeeksCAD
Functionality: Import solid models from STEP and IGES files. Draw construction geometry and lines and arcs. Create new primitive solids, or make solids by extruding a sketch or by making a lofted solid between sketches. Modify solids using blending, or boolean operations. Save IGES, STEP and STL. Printer plot the 2D geometry or to HPGL. Import and export dxf files; lines, arcs, ellipses, splines and polylines are supported. Use the geometric constraints solver to create accurate drawings from rough sketches.
网址:http://code.google.com/p/heekscad/
2.4 Coin3D
Coin3D is an Open Inventor clone by the Norwegian company Kongsberg Oil & Gas Technologies (formerly Kongsberg SIM). Coin3D, like Open Inventor, is a C++ object oriented retained mode 3D graphics API used to provide a higher layer of programming for OpenGL. The API provides a number of common graphics rendering constructs to developers such as scene graphs to accomplish this. Coin3D is fully compatible with the Open Inventor API. Coin3D is distributed as open source (with ability to purchase commercial developer license) and thus benefiting from a large user base in the open source community while maintaining commercial code quality. Coin3D is being used by many small and large companies to drive advanced visualization solution in a wide range of application domains such as geo-modelling, CAD, medical visualization, robotics and presentation
网址:http://www.coin3d.org/
2.5 SALOME(开源CAE)
SALOME is an open-source software that provides a generic platform for Pre- and Post-Processing for numerical simulation. It is based on an open and flexible architecture made of reusable components.
SALOME can be used as standalone application for generation of CAD models, their preparation for numerical calculations and post-processing of the calculation results.
SALOME can also be used as a platform for integration of the external third-party numerical codes to produce a new application for the full life-cycle management of CAD models.
网址:http://www.salome-platform.org/
3.开源的3D引擎
开源的3D引擎基本都是基于OpenGL和DirectX的基础上构建的,按功能可以分为2类:
3D图形渲染引擎
只提供图形渲染功能,例如ORGE。
3D游戏引擎 不仅有图形渲染功能,还包括物理系统、网络通信、场景、角色和人工智能等。例如Irrlicht和OSG
下面是最流行的三款开源3D引擎的简介和工程及国内的应用举例。
3.1 Irrlicht Irrlicht引擎是一个用C++书写的高性能实时的3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台),OpenGL 1.2或它自己的软件着色程序,可以实现该引擎的完全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。
Irrlicht十分幸运地为一个巨大的活跃的开发团队以大量的工程所支持。然而,因为Irrlicht主要由游戏名家Nikolaus Gebhardt所设计,所以该引擎在设计上十分连贯。你可以在网上到处发现有Irrlicht的增强程序,如可选用的地形生成器,入口生成器,输出器,world层生成器,相关教程和编辑器等。而且,它独立地创建了到Java,Perl,Ruby,BASIC,Python,LUA甚至更多种语言的绑定。而最为重要的是,它是完全自由的。
网址:http://irrlicht.sourceforge.net/
工程应用:使用该引擎到产品CivilFEM Structural Designer for ANSYS
http://www.civilfem.com/
大型MMORPG应用:HIPIHI(国内的第二人生游戏)
http://www.hipihi.com
3.2 OSG(OpenScene Graphics) OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API),它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件(middleware)为应用软件提供了各种高级渲染特性,IO,以及空间结构组织函数;而更低层次的OpenGL 硬件抽象层(HAL)实现了底层硬件显示的驱动。
网址:http://www.openscenegraph.org/projects/osg
虚拟现实应用:西安虹影科技有限公司(3DVRI)
虚拟仿真应用:北京神州普惠的DWK数字武器开发平台
飞行模拟器:Flightgear
http://www.flightgear.org/
3.3 OGRE(Open Game Rendering Engine)
OGRE 3D是一个被广泛使用的开源三维图形渲染库,成功地被应用于诸多三维仿真领域,其中包括网络游戏和一些商业的三维仿真项目。
网址:http://www.ogre3d.org/
大型MMORPG应用:Uworld(国内的第二人生)
|
|