2025年10月21日

支持新的 Evergine 运行时

随着Evergine新稳定版的发布,我们扩展了引擎的功能,使其能够导入并处理更多种类的文件格式。
作为本次更新的一部分,我们新增了Evergine.Runtimes库,并提供了一个新的示例项目:“Evergine Runtime Lab”。

此版本包含以下NuGet包:

  • Evergine.Runtimes.OBJ
  • Evergine.Runtimes.USD
  • Evergine.Runtimes.IFC
  • Evergine.Runtimes.CAD

通过此版本,我们的目标是更轻松地集成新的 3D 模型格式——例如OBJ和USD——以及专注于工业和建筑设计的格式,如IFC和CAD。

 

Evergine.Runtimes.OBJ

到目前为止,Evergine支持GLB和STL格式。
通过新增的Evergine.Runtimes.OBJ库,我们增加了对业界最广泛使用的 3D 格式之一——OBJ的支持,从而扩展了引擎的加载能力。

Evergine.Runtimes.OBJ 的主要特性

  • 支持简单几何体(三角形和四边形)。
  • 兼容基本材质和PBR材质。
  • 支持PNG、JPG和BMP格式的纹理。
  • 兼容点云。

 

Evergine.Runtimes.USD

什么是?

通用场景描述 (USD)是由皮克斯开发的一种开放格式和技术,用于描述、交换和处理复杂的 3D 场景。
它不仅仅是一种文件格式,更是一个用于管理大规模项目中 3D 内容的模块化、可扩展框架。

USD 的主要特性

  • 统一且互联的场景:提供通用的场景表示,便于集成来自不同来源的数据。
  • 高效且可扩展:专为处理超大规模场景而设计,同时不牺牲性能。
  • 灵活且可扩展:支持广泛的 3D 数据,包括模型、纹理、光照、动画等。
  • 互操作性:兼容 Maya、Houdini、Blender 等主流行业软件。

得益于其提供的优势,“Alliance for OpenUSD” 应运而生——该倡议由 Pixar、Apple、Adobe、NVIDIA 和 Autodesk 等公司共同发起,致力于推广和推进该格式的发展。
如今,USD 已成为多家公司软件中 3D 项目的主要格式,例如 NVIDIA Omniverse,或是在 Apple 的案例中,它被用于其设备上的 增强现实 (AR) 内容。

随着 USD 在行业内的日益普及,以及 Evergine 团队 对创新和引擎持续改进的不懈承诺,我们集成了一个 新的运行时,使 Evergine 能够 实时加载此类格式。

Evergine.Runtimes.USD 功能特性

在研究了用于 USD 文件加载的不同 API 后,我们选择了 OpenUSD,这是由 Pixar 开发、使用 Python 编写的官方 API。

Evergine.Runtimes.USD 使用 CSnake 生成一个包含 usd-core (OpenUSD) 模块的 Python 环境,从而 在 .NET 中实现实时 USD 文件加载。

Evergine.Runtimes.USD 的主要功能

  • 支持所有 USD 格式类型:.usd、.usdz、.usda 和 .usdc。
  • 兼容简单(三角形)和复杂(四边形、N 边形)几何体。
  • 支持基础和 PBR 材质
  • 兼容 PNG、JPG 和 BMP 格式的纹理

 

Evergine.Runtimes.IFC

新的 Evergine.Runtimes.IFC 库为 运行时动态加载 IFC 模型 提供了一个 强大且高效的解决方案。
它专为 实时 3D 应用 设计,并能无缝集成到使用 Evergine 开发的项目中。

什么是?

Industry Foundation Classes (IFC) 是一个开放、供应商中立的标准,用于交换和共享 BIM(建筑信息模型) 数据。
IFC 定义了一个中性的数据模式,描述建筑信息模型中的实体、属性和关系,允许不同应用以 可互操作 的方式导入和导出数据。

IFC 的关键特性

  • 互操作性:在 BIM 工作流中充当 通用语言,确保在一个阶段或专业生成的信息可以被其他参与方和工具使用,而不会造成数据丢失或歧义。
  • 协作:允许建筑师、工程师和施工人员在一个 实时模型 上工作,任何更改都会自动反映在视图、图纸和预算中。
  • 标准化:BIM 定义了流程,而 IFC 提供了在系统间构建和传输信息的技术标准。没有 IFC,BIM 模型的协作范围和一致性将受到极大限制。

鉴于 IFC 标准的这些特性,它在 BIM 方法论中的角色 对于确保项目全生命周期中涉及的不同专业之间的互操作性和协作至关重要。
如今,IFC 被广泛应用于主流建筑和工程软件 中,例如 Revit 或 ArchiCAD 等,它充当着 交换模型和施工数据的通用格式。

随着 原生 IFC 支持 的加入,Evergine 向 将 BIM 工作流集成到实时 3D 环境 迈出了重要一步。
作为一个 专为工业应用开发而设计的引擎,这项增强代表了一个 重要的里程碑,使开发者和行业专业人士能够 直接在引擎内可视化、交互和探索 BIM 模型,无需中间转换或担心数据丢失。

Evergine.Runtimes.IFC 功能特性

在 Evergine.Runtimes.IFC 的开发过程中,Evergine 团队探索了不同的库来标准化 IFC 文件的读取。
经过评估多个选项,团队选择了 XBimGeometry,这个库能够读取和处理 IFC 文件,将其转换为 Evergine 可以解释的、包含几何体的数据结构。

Evergine.Runtimes.IFC 的主要功能

  • 支持 IFC2x3 和 IFC4。
  • 渲染 CAD 实体 和 3D 网格。
  • 按顶点颜色渲染材质。
  • 半透明材质的渲染。
  • 平滑与硬边法线的生成。
  • 按材质对几何体进行高效批处理。

 

Evergine.Runtimes.CAD

除了 IFC 文件加载库,我们还引入了一个新的加载器:Evergine.Runtimes.CAD,它能在Evergine构建的项目中实时加载 CAD 文件(DXF 和 DWG)。

什么是 CAD、DXF 和 DWG 文件?

CAD 文件包含矢量几何图形、图层和元数据,用于工程和建筑领域的技术图纸与模型。

  • DWG 是 Autodesk 的专有二进制格式,广泛用于高保真地存储完整图纸。
  • DXF(Drawing Exchange Format)是 Autodesk 的交换格式,通常为 ASCII 格式(也有二进制版本),旨在在不同应用程序之间共享数据。

两种格式都存储如直线、圆弧、文本、块和填充图案等图元,并广泛用于设计、制造和技术文档领域。

 

Evergine.Runtimes.CAD 功能特性

经过对多种方案的分析,团队选择了ACadSharp,一个用于读写 CAD 文件的C# 库。
ACadSharp 支持广泛的 DXF 和 DWG 版本,并以其简洁的接口、高性能和稳健性脱颖而出——这些是 Evergine 标准化 CAD 文件加载的关键因素。

Evergine.Runtimes.CAD 的主要特性

  • DXF 支持:从 R12 到 R2024 的版本(ASCII 和二进制)。
  • DWG 支持:从 R14 到 R2024 的版本。
  • 表示构成 CAD 文档的主要二维几何结构。

示例“Evergine Runtime Labs”

为了展示每个Evergine Runtime的潜力,我们开发了Evergine Runtime Lab,这是一个可直接从Evergine Launcher下载的示例项目。
此示例允许您快速轻松地测试加载和可视化 Evergine Runtimes 支持的所有格式。

文档

有关这些运行时每个的详细技术文档和实现信息,请参阅Evergine 官方文档。

结论

在Evergine,我们持续努力改进我们的产品,扩展其与各种3D 格式的兼容性。
通过本次更新,我们增加了对经典格式如 OBJ、新标准如 USD,以及面向工业和建筑设计的格式如 IFC 和 CAD 的支持。
我们的目标是通过提供一个更灵活、更强大、更现代的环境来简化开发者的工作,以适应 3D 行业当前的需求。

作者
Vicente Martínez Rodríguez
Plain Concepts Research