几何引擎 & 约束求解器 & 3D仿真物理引擎 & 图形引擎

1 介绍

技术图谱

在这里插入图片描述
四大技术图谱就像四座护法金刚,形成了深不可测的技术鸿沟。这对于任何一个工业软件企业,十年发展的沉淀,那还只是开始。这条路,太漫长了。
在这里插入图片描述

建模

在这里插入图片描述
在这里插入图片描述

主流CAD/CAM/CAE/AEC所用引擎

Software Vendor Domain 3D-kernel
4MCAD IntelliCAD 4M S.A., Greece CAD, AEC Open CASCADE Technology
Adams MSC Software, USA CAE Parasolid
ADEM ADEM, Russia-Israel-Germany CAD, CAM, CAPP ACIS
ADINA Modeler ADINA R&D Inc., USA CAE Parasolid & Open CASCADE Technology
Alibre Design 3D Systems, USA MCAD ACIS
Allplan Nemetschek AG, Germany AEC/BIM SMLib
AMPSolid AMPS Technologies, USA CAE ACIS
ANSYS ANSYS Inc., USA CAE ACIS & Parasolid
APM Studio НТЦ АПМ, Russia MCAD Own kernel (APM Engine)
ArchiCAD Graphisoft, Hungary AEC/BIM Own kernel
ARES Graebert, Germany CAD ACIS
Ashlar-Vellum Cobalt, Xenon, Argon Ashlar-Vellum, USA MCAD ACIS
AutoCAD Autodesk, USA CAD, AEC, GIS Own kernel (ASM) compatible with ACIS
Autodesk Inventor Autodesk, USA MCAD Own kernel (ASM) compatible with ACIS
Autodesk Moldflow Autodesk, USA CAE Parasolid
Autodesk Revit Architecture Autodesk, USA AEC/BIM Own kernel (ASM) compatible with ACIS
bonzai3d AutoDesSys, USA CAD own kernel + ACIS
Bricscad Bricsys NV, Belgium AEC, MCAD ACIS
BtoCAD YuanFang Software Co., Ltd., China CAD ACIS
CADopia CADopia Inc., USA CAD ACIS
CATIA Dassault Systemes, France CAD/CAM/CAE, AEC CGM
Cimatron Cimatron Limited, Israel CAM ACIS
CollabCAD National Informatics Centre, India CAD/CAM Open CASCADE Technology
Creo (former Pro/Engineer) Parametric Technology, USA MCAD GRANITE
Creo Elements/Direct Modeling (former CoCreate) Parametric Technology, USA CAD ACIS
Edgecam Planit Software, UK CAM Parasolid & GRANITE
ESPRIT DP Technology Corp., USA CAM Parasolid
form-Z AutoDesSys, USA CAD own kernel + ACIS
FreeCAD Open project CAD Open CASCADE Technology
GibbsCAM Cimatron, Israel CAD/CAM Parasolid & GRANITE
GstarCAD Suzhou Gstarsoft Co., Ltd, China CAD ACIS
IRONCAD IronCAD LLC, USA MCAD ACIS & Parasolid
KeyCreator Kubotek USA Inc., Japan-USA CAD ACIS
KOMPAS-3D ASCON, Russia MCAD, AEC Own kernel(C3D)
Mastercam CNC Software, USA CAD/CAM ACIS
Masterwork Tecnos G.A., Italy CAM Open CASCADE Technology
MicroStation Bentley Systems, USA AEC Parasolid (previous versions used ACIS)
Moment of Inspiration Triple Squid Software Design, USA CAD SOLIDS++
NX Siemens PLM Software, Germany-USA CAD/CAM/CAE Parasolid
Patran MSC Software, USA CAE Parasolid
Power NURBS Ideate Inc., USA CAD SOLIDS++
PowerSHAPE Delcam plc, UK CAD/CAM Parasolid
progeCAD progeCAD Srl Uninominale, Italy CAD ACIS
Radan Planit, UK CAD/CAM ACIS
Rhinoceros Robert McNeel and Associates, USA CAD SOLIDS++ (particular modules)
Shark LT Encore, USA CAD ACIS
SmartCAM SmartCAMcnc, USA CAM ACIS
Solid Edge Siemens PLM Software, Germany-USA MCAD Parasolid (previous versions used ACIS)
SolidWorks Dassault Systemes, France-USA MCAD Parasolid
SpaceClaim SpaceClaim Corp., USA MCAD ACIS
STAR-CCM+ CD-adapco, UK-USA CAE Parasolid
StruCad AceCad Software, UK AEC/BIM Own kernel
T-FLEX Top Systems, Russia MCAD Parasolid
ThinkDesign Versata, USA MCAD Own kernel
TopSolid Missler Software, France CAD/CAM Parasolid
TurboCAD IMSI/design, USA AEC, MCAD ACIS
Vectorworks Nemetschek, Germany AEC Parasolid (previous versions used SMLib)
ViaCAD 2D/3D Encore, USA CAD ACIS
ZW3D (former VX CAD/CAM) ZWCAD Software, China MCAD Own kernel (VX Overdrive)
SINOVATION 华天软件 CAD/CAM CRUX IV

2 几何建模引擎

2.1 介绍

在这里插入图片描述
几何引擎主要是用来进行产品造型设计,是在计算机上用基本几何图元以及参数化的曲线曲面,进行布尔运算从而完成造型的过程。整个几何引擎的运算是非常复杂的,包括大量的自由曲面求交求并等计算。一款成熟的几何引擎不仅需要准确的计算,而且还要满足计算精度的要求,同时还需要有成熟的容错机制以及模型构造历史信息的管理。这就大大的提高了入门的门槛,这也就是为什么市面上很少有几何引擎的原因。

2.2 各家实现

在这里插入图片描述

3 图形引擎

几何引擎用来驱动造型数据的产生,图形引擎则用来对模型展示渲染,满足用户交互的需求。

图形引擎–介绍

4 几何约束求解器

几何约束求解引擎是公认的CAD参数化设计的关键核心技术,是CAD的关键基础组件,技术难度大,可靠性要求极高。

4.1 介绍

几何约束求解器广泛应用在草图轮廓表达、零件建模参数表达、装配约束以及碰撞检查等场景中,为快速确定设计意图表达、检查干涉、模拟运动提供了强有力的支持,可帮助最终用户提高生产效率。

在CAD、CAM、CAE、AEC等应用方向,约束求解引擎都是最基础的核心组件。

  • CAD领域的2D草图绘制、偏移轮廓操作、装配约束、参数布线和3D零件形状修改、碰撞/间隙计算、运动模拟、高质量的工程图纸和技术插图等场景;
  • CAM领域的模具装配约束、2D刀具路径生成、CAM碰撞和间隙计算等场景;
  • CAE领域需要的参数化3D零件和装配体修改;
  • AEC领域的参数化楼层平面图的2D草图、参数化组件和管道/电缆网络配置、AEC项目干涉分析、高质量AEC图纸(HLM)等场景,都需要约束求解器支持。

4.2 各家实现

D-Cubed DCM(西门子)

20世纪90年代至2006年,英国剑桥大学Owen教授创办D-Cubed公司开发约束求解器DCM,长期占据求解器70%市场。DCM市场并不大,截至2018年销售额不过3000万美元,但其在产业发展中属于“卡脖子”工程。为了在竞争中保持优势地位,西门子公司于2006年全资收购了D-Cubed,引发业内震动,许多著名CAD厂商如Autodesk公司为了不受制于人,纷纷宣布自行开发几何约束求解器,以确保技术安全。几何约束求解器的重要性由此可见一斑。

CGM(达索)

LGS(LEDAS)

DCS(华云三维)

C3D Solver(俄罗斯ASCON)

5 物理引擎

5.1 介绍

物理引擎是一个计算机程序用来模拟牛顿动力学模型,使用质量、速度、摩擦力和空气阻力等变量,为刚性或柔性物体赋予真实的物理属性的方式来模拟物体的运动、旋转和碰撞等交互过程,使得仿真的效果更准确、更真实。
在这里插入图片描述
在这里插入图片描述

5.2 各家实现

PhysX

PhysX是Nvidia开发的开源实时物理引擎 中间件 SDK ,作为Nvidia GameWorks软件套件的一部分。

最初,支持 PhysX 的视频游戏旨在通过PhysX PPU(Ageia设计的扩展卡)进行加速。然而,在 Ageia 被 Nvidia 收购后,专用 PhysX 卡已停产,取而代之的是在支持CUDA的GeForce GPU上运行API。在这两种情况下,硬件加速都允许从CPU卸载物理计算,从而使其能够执行其他任务。

如今,PhysX 和其他中间件物理引擎已在许多视频游戏中使用,因为它们使游戏开发人员不必编写自己的代码来实现经典力学(牛顿物理),例如软体动力学。
在这里插入图片描述

MuJoCo(Multi-Joint dynamics with Contact)

http://www.mujoco.org/

MuJoCo是一款免费开源物理引擎,旨在促进机器人、生物力学、图形和动画以及其他需要快速准确模拟的领域的研究和开发。
MuJoCo被DeepMind收购后进行了开源。
它提供了速度,准确性和建模能力的独特组合,但它不仅仅是一个更好的模拟器。相反,它是第一个从头开始设计的全功能模拟器,其目的是基于模型的优化,尤其是通过接触进行的优化。MuJoCo使扩大计算密集型技术(例如最佳控制,物理一致状态估计,系统识别和自动化机制设计)成为可能,并将其应用于具有丰富接触行为的复杂动态系统。它还具有更多传统应用程序,例如在物理机器人上部署之前测试和验证控制方案,交互式科学可视化,虚拟环境,动画和游戏。
在这里插入图片描述

Bullet(Bullet Physics SDK)

https://github.com/bulletphysics/bullet3

Bullet物理引擎是开源的,专业的集刚体、软体和碰撞检测于一身的动力学类库。Bullet的特性还包括快速和稳定的刚体动力约束和求解、动态车辆、人物控制和滑动器、铰链、普通的自由度和针对碎布木偶的圆锥和扭曲约束。这款物理引擎的历史也比较久了,但似乎国内知道的ODE的人更多一些,这款物理引擎被Nvidia的开发人员所关注(Nvidia前些时候说过,要用GPU来实现物理加速,可能会最先在这款物理引擎上实现。)
在这里插入图片描述

Havok(Havok Game Dynamics SDK)

https://www.havok.com/

Havok引擎是Havok公司开发的一款物理引擎,有不少游戏和软件都选择了他做物理引擎,比如HALO3、失落星球、HL2、 细胞分裂、指环王Online等等。如今Havok被Intel收购了,以后可能对Intel的CPU会有特别的优化。Havok对PS2、XBOX、GameCube、PC多种游戏平台都有支持。也是世界顶级游戏公司Valve(Half Life的公司),Pandemci,Remedy等的合作伙伴。这个物理引擎曾经支持过各种类型的游戏,包括racing game,first-persion shooter,MMOGs,adventure games,puzzle games等等。Hovak还曾经负责电影Matrix的部分效果处理。

特点:支持如下功能

  • Collision Detection - including Continuous Physics™;
  • MOPP™ Technology - for compact representation of large collision meshes;
  • Dynamics and Constraint Solving;
  • Vehicle Dynamics;
  • Data Serialization and Art Tool Support;
  • Visual Debugger for in-game diagnostic feedback.

在这里插入图片描述

ODE(Open Dynamics Engine)

https://www.ode.org/

ODE(Open Dynamics Engine,开源动力学引擎)是一个著名免费的具有工业品质的用于模拟关节连接的刚体动力学的库,由Russell Smith在一些贡献者的帮助下开发而成。经过验证的应用场景包括在虚拟显示环境中模拟地面车辆,腿形生物和移动物体。它具有快速、灵活、健壮的特点,并具有内置的碰撞检测功能。

Newton(Newton Dynamics)

http://newtondynamics.com/forum/newton.php

Newton引擎主要应用于3D游戏开发中,其快速方便的碰撞检测和关节构架等功能使其非常适合于机器人仿真环境的建立,避免了手工复杂的力学计算,并能提供逼真的仿真结果。这款物理引擎更多的专注于生活中的实例模拟,名声可能不是很响,但是功能上绝对不差。比较出名的作品有TV3D,Quest3D等。

Vortex(Vortex Studio)

https://www.cm-labs.com/

VORTEX是加拿大CM_LABS公司的旗舰产品,是一款工程级别的实时交互式动力学仿真软件,强调准确性和实时性并重。Vortex软件作为全世界最优秀的实时交互动力学仿真工具,具有优秀的数学模型和高效的计算方法,成功实现工程计算准确性和虚拟现实仿真实时性。VORTEX可以考虑任意复杂拓扑系统的多体动力学,自动进行快速稳定准确的干涉检查与碰撞检测,原生支持OSG视景引擎,也可以集成任意的图形引擎。
在这里插入图片描述

DART(Dynamic Animation and Robotics Toolkit)

https://dartsim.github.io/

DART(动态动画和机器人工具箱)是由乔治亚理工学院的图形实验室和仿人机器人实验室创建的一个协作、跨平台的开放源码库。该库为机器人技术和计算机动画中的运动学和动力学应用提供数据结构和算法。由于DART使用广义坐标来表示铰接刚体系统,并使用Featherstone的铰接体算法来计算运动动力学,因此它的精度和稳定性得到了显著的提高。DART在机器人学和计算机动画中有着广泛的应用,因为它具有多体动力学模拟器和各种用于控制和运动规划的运动学工具。

Brax

Brax,一个用JAX编写的用于刚体仿真的开源库,重点是加速器上的性能和并行性。

Drake

RaiSim

https://raisim.com/

RaiSim是RaiSim Tech Inc.开发的用于机器人技术和AI的跨平台多体物理引擎,其设计目的是为模拟机器人系统提供准确性和速度。但是,它是通用的刚体模拟器,可以非常有效地仿真任何刚体。它是开源的,且完全支持Linux,Mac Os和Windows系统。
在这里插入图片描述

SimBody(Multibody Physics API)

https://simtk.org/projects/simbody

Simbody是一种高性能的开放源代码工具包,用于对关节机制进行科学和工程质量的仿真,包括生物力学结构(例如人和动物的骨骼),机械系统(例如机器人,车辆和机器)以及任何其他可以描述的内容一组由关节相互连接,受力和运动影响且受约束约束的刚体。Simbody包括一个多体动力学库,用于建模O(n)时间中的广义/内部坐标下的运动。有时称为Featherstone样式的物理引擎。该工具集最初是由斯坦福大学Simbios中心的Michael Sherman开发的,由Peter Eastman和其他人做出了重要贡献,其完全在GitHub上开源,且完全支持Windows,Mac OSX或Linux系统。

Dojo physics engine

https://github.com/dojo-sim/Dojo.jl
https://arxiv.org/pdf/2203.00806.pdf

  • 像是实验室demo,不再积极开发。
  • Dojo物理引擎从头开始设计,以解决这三个关键缺陷,为运动规划、控制、强化学习、系统识别和高质量数据集生成提供更好、更容易的优化。

其他

Qt 新版本中使用 PhysX

Qt 6.4发布介绍中:其中模块,Qt Quick 3D 物理 (TP)
新的 Qt Quick 3D Physics 模块提供了一个高级物理模拟 API,它支持模拟交互式刚体,以及用于检测重叠的静态网格和非碰撞体。每个模拟物体都可以有自己的物理属性,如质量、密度和摩擦力。

将物理模拟集成到 Qt Quick 3D 中,轻松构建自然移动和交互的 3D 场景。之前需要手工制作这样的场景和动画,可能非常费力,但是使用 Qt Quick API 可以很容易地将物理内容添加到任何 3D 场景中。

该模块基于成熟、经过充分测试和高性能的 PhysX 引擎。

2022年,NVIDIA开源了最新的PhysX 5.1 SDK

2018年,NVIDIA首次将自家的物理引擎PhysX开源,并在之后进行了一段时间的更迭维护。
但在2019年末,GitHub上NVIDIA的PhysX项目页的版本却停留在了4.1,并未同步更新PhysX 5.0。
2022年,NVIDIA终于开源了最新的PhysX 5.1 SDK,总计包含了66.2万行代码、文档和相关资产。

The Kautham Project

https://github.com/iocroblab/kautham

在这里插入图片描述

参考

1、wiki–PhysX
2、Dojo: A Differentiable Physics Engine for Robotics
3、机器人开发–常用仿真软件工具
4、Awesome-Robot-Learning
5、Qt 6.4 正式发布,添加 http 服务器、物理、光线等大量新模块
6、时隔2年:NVIDIA终于开源PhysX 5.1物理引擎
7、A Tool for Knowledge-oriented Physics-based Motion Planning and Simulation
8、图形引擎–介绍
9、CAD几何引擎和图形引擎的关系
10、“多物理场仿真技术” 公众号 原创文章集合
11、工业软件研发有多“难”
12、工业软件(CAD、CAE和EDA)为什么这么难研发?(转载)
13、2021主流CAD/CAM/CAE/AEC所用几何引擎具体是什么

猜你喜欢

转载自blog.csdn.net/qq_38880380/article/details/131350592
今日推荐