游戏引擎与物理引擎与几何建模内核之间的区别

rea*_*nly 3 c++ opengl graphics cad opencl

“渲染引擎通过多种方法(光栅化、光线追踪等)中的任何一种生成动画 3D 图形。

渲染引擎通常不是通过编程和编译直接在 CPU 或 GPU 上执行,而是建立在一个或多个渲染应用程序编程接口 (API) 上,例如 Direct3D、OpenGL 或 Vulkan,它们提供图形的软件抽象处理单元(GPU)。DirectX、Simple DirectMedia Layer (SDL) 和 OpenGL 等低级库也常用于游戏中,因为它们提供对其他计算机硬件(例如输入设备(鼠标、键盘和操纵杆)、网卡、和声卡。” -游戏引擎

“UNISURF 是一种开创性的表面 CAD/CAM 系统,旨在协助车身设计和加工。它由法国工程师 Pierre Bézier 于 1968 年为雷诺开发,并于 1975 年在公司全面使用。[1][2]到 1999 年,约有 1,500 名雷诺员工使用 UNISURF 进行汽车设计和制造。” CAD/CAM 系统的出现

“几何建模内核是计算机辅助设计包中使用的 3D 实体建模软件组件”几何建模内核

geometric modeling kernelsgame engines和相比,我很难理解 a 的底层架构physics engines

问题:

  1. 我是否理解正确,几何建模内核实际上是低级 API,更具体地说, a kernel loadable extensions,专门用于处理几何操作的渲染,例如在屏幕上创建对象的边界表示?

  2. 如何将geometric modeling kernels来自不同OpenGL来源的API的?它们是否也是用 C++ 或较旧的语言编写的,因为我相信它们出现得更早?

  3. 我的理解是否正确,几何建模内核,如ACISParasolid继续使用它自己的、专有的、低级模块,而不是 OpenCL/OpenGL,或者它们是混合的?

  4. 就 API 而言,物理引擎的架构是什么。它是否使用OpenGL或其他派生的低级图形 API?比方说,Havoc它是否依赖于其他低级 API,比如说Direct3D

gkv*_*311 6

几何建模内核是一个建模内核,它允许构造或修改几何图形,与在屏幕上显示该几何图形无关。它也不同于模型雕刻应用程序,因为后者是由艺术家使用的,而建模内核是由工程师使用的,因此即使在构建视觉上相似的模型时,输入也非常不同。

现代建模内核通常伴随着用于显示模型的3D 渲染器。但是这个功能通常放在框架内的专用组件中。平台只有有限的一组硬件加速图形库,例如OpenGL,VulkanDirect3D,因此带有建模内核的 3D 图形引擎通常依赖于较低级别的库之一。从历史上看,OpenGL大多数工业应用程序都使用它(与游戏相反),但今天可能不一样了。

编写建模内核的语言可能有所不同,但我相信大多数都是用 C++ 编写的。由于建模内核在较早的时候开始编写,它们可能会继承一些中间语言,例如 OCCT 中的 CDL(自 OCCT 7.0.0 以来已删除残余部分)或源自其他语言的代码(例如来自 FORTRAN,过去很流行) - 建模内核很可能不使用这些语言,但可以从源代码中发现,某些算法的 C++ 代码是在某个步骤从 FORTRAN 转换而来的(当然,您不能使用专有内核检查这一点) .

如果您查看开源实体建模内核Open CASCADE Technology 的组件结构,您会发现Visualization组件使用 OpenGL 或其他低级图形库实现了用于显示模型的交互服务,而基于 OCCT 的应用程序没有使用它,并可以考虑使用其他库显示形状。

试图概括:

  • 图形引擎实现渲染现有几何图形的服务,并在 OpenGL 等低级 API 之上实现。这包括着色/材料模型(Phong、PBR 金属粗糙度)、相机定义和一堆其他工具的实现,不附带低级 API。
  • 几何建模内核实现数据结构(如边界表示或 CSG)、工程师构建模型的复杂数学(包括基元、圆角、布尔运算)对由 B-Splines 和类似物表示的精确几何体(与通常面向艺术家的工具形成对比)适用于多边形几何)。该框架可能提供其他工具,包括图形引擎,但它们通常与几何内核分离。图形引擎通常不直接使用 B-Spline 几何,因此几何建模内核必须生成三角剖分来渲染几何。
  • 物理引擎仅实现与物理模拟相关的服务。物理引擎包括碰撞检测模块。该项目可能还包含使用一些图形库的示例,但内核不应依赖任何图形库。
  • 游戏引擎结合了图形引擎、物理引擎、音频引擎,通常还会提供一些脚本语言和其他简化游戏开发的工具。

OCCT组件

OCCT 3D 查看器