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

Difference between Game Engine vs Physics Engine vs Geometric modeling kernel

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

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

"UNISURF was a pioneering surface CAD/CAM system, designed to assist with car body design and tooling. It was developed by French engineer Pierre Bézier for Renault in 1968, and entered full use at the company in 1975.[1][2] By 1999, around 1,500 Renault employees made use of UNISURF for car design and manufacture." Advent of CAD/CAM Systems

"A geometric modeling kernel is a 3D solid modeling software component used in computer-aided design packages" Geometric Modeling Kernel

game enginesphysics engines 相比,我很难理解 geometric modeling kernels 的底层架构。

问题:

  1. 我理解的对吗,几何建模内核,其实是底层的APIs,更具体地说,是一个kernel loadable extensions,专门用来处理渲染几何操作,例如在屏幕上创建对象的边界表示?

  2. geometric modeling kernelsOpenGL 派生的 API 有何不同?它们是否也是用 C++ 或更旧的语言编写的,因为我相信它们出现得更早?

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

  4. 物理引擎的架构是什么,API。它是使用 OpenGL 还是其他派生的低级图形 API?比方说,Havoc,是不是依赖其他低级API,比方说Direct3D

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

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

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

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

试图概括:

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