2022年9月28日

宣布 Evergine 新主要版本发布

今天我们发布了 Evergine 2022.9.28。这是 2022 年的第二个主要版本,遵循我们每年发布两个主要版本的路线图。在此主要版本中,得益于客户的反馈,我们添加了大量新功能和改进。 

新特性

本次大版本发布我们专注于缺陷修复和性能提升,取得了重大进展,例如全新的数学硬件加速 API。我们还新增了生产力特性,如新的 3D 文本编辑器、对 MRTK 控件的 Quest 支持以及手部追踪。我们开发了新工具,如 ARCore 扩展和包含 ImPlot、ImNodes 及 ImGuizmo 库的 ImGui 扩展,此外还有其他工具被添加到 Evergine Studio 中。最后,我们进一步改进了文档参考。希望您会喜欢所有这些变化。

 您可在此下载 Evergine: 

主要亮点

全新粒子编辑器

Evergine 中的粒子系统用于渲染通常难以用网格或精灵表现的效果,但在此版本之前,Evergine 的粒子系统需要通过代码进行配置。在本次大版本发布中,我们在 Evergine Studio 内推出了一个新工具,以便轻松调整这个复杂粒子系统支持的所有可能参数。

继续阅读有关新粒子系统编辑器及特性的内容,请点击此处。

ARCore 集成

此版本为移动开发者添加的最有趣特性之一,是在 ARMobile 扩展中支持 ARCore。这使您能够访问 ARCore API 来追踪设备在空间中的移动,用于在摄像头图像上渲染 3D 对象。应用程序还可以访问光照估计和面部追踪功能。

继续阅读有关新 ARMobile 扩展特性的内容,请点击此处。

基于 SIMD 的数学库

新版本 Evergine 对 Evergine.Mathematics 库进行了性能改进。它现在利用了 .NET 6 上新的 SIMD API 指令支持,允许使用由 CPU 制造商定义的硬件加速指令,因此新 API 会检查硬件是否支持这些扩展以决定是否使用,若不支持则回退到向后兼容路径。在 x64 和 x86 架构上,它可以使用 SSE 和 AVX 向量;在 Arm64 架构上,则可以使用 AdvSIMD。所有这些工作的结果是,在 Math4x4、Matrix3x3、Quaternion 和 Vector4 操作上获得了 3-4 倍的性能提升。

阅读更多关于基于 SIMD 的新数学库的内容,请点击此处。

Quest 上的 MRTK

我们的 Mixed Reality Toolkit (MRTK) 包含多个 3D 控件,可用于在 HoloLens 2 上创建混合现实应用,现在也兼容 Meta Quest 设备,因此您可以在该平台上使用它创建 3D 应用,并且代码将在 MR/VR 设备间共享。这对于在 Quest 上快速原型化 MR 应用非常有用,因为部署速度更快。

Quest 手部追踪支持 

OpenXR 集成现在具备手部追踪能力。XR 应用中的手部追踪允许用户使用双手与虚拟对象和环境进行交互。这是一种无需传统手柄即可与虚拟场景互动的新方式。 

Meta Quest 设备将从该功能中获益最多。 

点击此处了解更多关于 Quest 手部追踪支持的信息。

关于 Evergine 中手部追踪的图片

全新字体与文本支持 

在此大版本中,我们为 Evergine Studio 添加了新的资源类型和 3D 文本编辑器工具。这种新的 3D 文本由 GPU 硬件加速,并使用多通道有符号距离场技术来减少因屏幕尺寸而产生的锯齿效应。新的字体编辑器工具允许您使用 TTF 文件定义新字体,并设置可在 3D 文本中使用的 UTF-8 或 ASCII 编码字符集。 

点击此处了解更多关于全新 3D 文本和字体工具的信息。

关于 Evergine 中字体的图片

ImGui、ImPlot、ImNodes 和 ImGuizmo。 

随着今年首个版本的发布,我们在底层 API 中引入了对 ImGui 库的支持。在此版本中,我们创建了一个新的 ImGui 扩展,其中包含一个 ImGuiManager,便于通过行为组件从高层 API 中使用。我们还为 ImGui 之上最有趣的三个组件和控件库添加了支持。 

  • ImGuizmo 包含一些用于快速原型设计所见即所得编辑器的实用 3D 控件。
  • ImPlot 是一个完整的库,用于利用 GPU 渲染基础和高级图表。
  • ImNodes 旨在为创建节点图编辑器提供简单的界面。

 点击此处了解更多关于此新扩展的信息。

可视化 SceneManager 配置 

此前,SceneManager 需要通过代码进行配置,但在此版本中,我们发布了一种在 Studio 内完成配置的新方式。在 Evergine Studio 中,进入实体详情区域,您现在会发现一个名为“场景管理器”的新选项卡。在这里,您可以编辑内置管理器的参数,例如 AssetSceneManager、BehaviorManager 或 ShadowMapManager,以及您在 Visual Studio 中编写的自定义 SceneManager。 

模型细节层次 

细节层次(LOD)是一种减少 Evergine 渲染远处模型所需 GPU 操作的技术。该技术允许 Evergine 根据实体与摄像机的距离来降低其渲染的模型复杂度。您可以在外部 3D 建模应用程序中配置 LOD 级别,当您将模型拖放到场景中时,Evergine 会自动为您创建并配置所需的实体和组件。层级树中的表示形式将是一个父实体,每个定义的 LOD 级别对应一个子实体。父实体必须包含在一个 LODGroup 组件中,该组件允许您配置所有参数,以便根据与摄像机的距离正确渲染此模型,而每个子实体将拥有一个 LODEntry 组件,其中包含 LODGroup 定义每个级别所需的信息。 

WebXR 实验性模板 

WebXR W3C 提案目前处于草案阶段,但自 Chrome 79 版本起已实现。目前在 PC 上使用 Chrome 或 Firefox 支持,在移动端和 Meta Quest 平台上使用 Chrome 浏览器支持,可通过在 chrome://flags 中添加标志来启用。 

我们添加了一个新的项目模板,以便在 Evergine 上开始使用 WebXR AR 技术 + WebGL,我们将继续关注这个有趣的 Web 平台新标准。 

在 Windows 窗体控件上渲染 

通过此新版本,您不仅可以在 Windows 窗体窗口(占据整个窗口空间)中渲染 Evergine,还可以使用自定义控件作为渲染目标。这将使您能够将 Evergine 表面与其他 Windows 窗体控件相结合。 

要将 Evergine 作为用户控件使用,只需使用 FormsSurface 并将其注册为渲染控件: 

var surface = windowsSystem.CreateSurface(0, 0) as FormsSurface; 

window.SetEvergineControl(surface.NativeControl); 

windowsSystem.RegisterLoopThreadControl(surface.NativeControl); 

window.Show(); 

 

查看我们的UIWindowsSystemDemo以获取更多信息。 

更多文档 

我们持续改进文档参考网站,补充了新增扩展 ImGui 和 ARMobile 的相关信息。扩展了 XRPlatform 的文档,涵盖新功能,并新增两大章节,详细说明音频与物理系统的使用方法。音频是引擎的核心部分,我们阐述了为项目添加声音和效果的完整工作流程;在新的物理章节中,我们尽力详细解释了物理引擎提供的各种可能性。 

 在 https://docs.evergine.com/ 查看所有变更 

升级指南 

我们做了一些改动以支持模型中的 LOD,这需要重新导出此类资源。如果你计划更新现有项目,应删除 .evergine 文件夹(与 Evergine 项目文件同级),以强制执行此导出过程。 

未来工作 

今年我们将发布更多次要版本,但下一个主要版本将在 2023 年推出。我们将继续与已在产品中使用 Evergine 的公司以及即将开始使用它的公司紧密合作。我们正致力于支持新的工业文件格式、新平台和技术。最后,我们将继续改进 Web 平台,支持新标准,帮助企业基于 Evergine 创建新的 3D 产品。 

 希望您阅读本文时能像我们撰写时一样享受。 

 祝您愉快! 

Javier canton
作者
Javier Cantón
Plain Concepts Research