
Evergine + Avalonia
单个应用中的现代界面与工业级3D渲染
此Evergine新版本集成了Avalonia,这是当前.NET生态系统中最重要的用户界面框架之一。此集成允许使用Avalonia创建带有集成Evergine渲染表面的应用程序,有助于开发将现代界面、企业应用逻辑和实时3D可视化融合在单一体验中的解决方案。
这一创新强化了Evergine的战略重点之一:不局限于成为一个孤立的图形引擎,而是提供可集成到实际应用中的3D技术,支持不同的窗口系统、UI框架和产品架构。
为何此集成至关重要?
在工业、工程、数字孪生、仿真或高级可视化场景中,用户体验包括控制面板、表单、仪表板、场景树、菜单、测量工具、属性检查器和编辑工作流,所有这些都与实时3D渲染共存。
1. 什么是Avalonia
Avalonia是一个面向.NET的开源、跨平台用户界面框架。它允许使用许多微软生态系统开发者熟悉的技术(如C#、XAML和MVVM等模式)创建应用程序。其目标是提供一种构建桌面和跨平台应用程序的现代方式,而不局限于Windows生态系统。
与其他为每个操作系统封装原生控件的框架不同,Avalonia使用自己的渲染引擎来绘制界面控件。这使其能够在各平台间提供一致的外观,并减少Windows、macOS、Linux及其他环境之间的视觉差异或意外行为。
| 语言 | C# + XAML |
| UI模式 | MVVM(为WPF、UWP、WinUI团队所熟悉) |
| 平台 | Windows · macOS · Linux · iOS · Android · WebAssembly · 嵌入式Linux |
| 自有渲染器 | 独立引擎,无原生操作系统控件(外观一致) |
| 公司 | JetBrains · NASA · Autodesk · Devolutions |
| 许可证 | 开源(MIT) |
Avalonia 最引人注目的一点是,对于已经使用过 WPF、UWP、WinUI 或其他基于 XAML 的 UI 技术栈的团队来说,它非常熟悉。视图、表示逻辑和数据模型之间的分离,与专业的 .NET 应用程序中常见的 MVVM 架构完美契合。这使得拥有企业级桌面工具经验的团队,能够在不完全抛弃先前知识的情况下,更容易地采用 Avalonia。
其市场影响力尤其在寻求跨平台桌面应用程序现代化替代方案的 .NET 团队中增长。WPF 在 Windows 上仍然是一项非常稳固且广泛使用的技术,但它并非为跨平台解决方案而设计。WinUI 为 Windows 提供了现代化的体验,但也非常专注于该生态系统。MAUI 更侧重于移动端和具有原生 UI 的跨平台应用程序。Avalonia 在跨平台桌面应用程序、技术工具、工业软件、HMI、编辑器、配置器以及需要丰富且一致界面的企业级应用程序领域,占据了一个特别有趣的空间。
另一个相关方面是其对工业和嵌入式场景的关注。在这类应用程序中,UI 不仅仅是美观层面,更是操作的关键部分。需要稳健的界面、数据面板、实时可视化、触摸屏支持、在特定硬件上的部署以及长时间使用下的可靠体验。Avalonia 非常适合这种环境,因为它结合了 .NET 的灵活性、自身的渲染模型、样式化能力、高级控件以及为复杂应用设计的架构。
总而言之,Avalonia 已成为在 .NET 中构建现代界面的最有趣的替代方案之一,尤其是当目标是在不放弃 C#、XAML 和 MVVM 的情况下,走出纯 Windows 环境时。
2. Evergine 与 Avalonia 集成
新的集成允许创建这样的应用程序:Avalonia 处理用户界面,而 Evergine 提供 3D 渲染表面。从概念上讲,Avalonia 应用程序充当主容器:它定义窗口、视觉结构、面板、按钮、菜单、布局、样式和交互逻辑。在该界面内,Evergine 作为一个特定的渲染区域集成,可以在其中可视化 3D 场景,该场景可能包含模型、摄像机、灯光、材质、动画、模拟、工业数据或引擎管理的任何其他内容。

图 1 — Evergine + Avalonia 集成架构
这种架构特别有用,因为它清晰地分离了职责。Avalonia 管理用户体验和应用程序层。Evergine 管理 3D 渲染、场景、图形资源、摄像机、光照和实时视觉逻辑。其结果是,这两项技术在保持各自专业性的同时协同工作。
借助 Avalonia,Evergine 获得了满足此类需求的额外途径。这种集成允许利用完整的 .NET 生态系统:服务、MVVM 模式、数据绑定、命令、依赖注入、企业库、API 访问、后端通信以及专业应用程序的所有常规逻辑。同时,Evergine 提供了渲染高级 3D 内容、处理复杂场景的能力,并为实时可视化提供了图形基础。
典型用例
这两项技术的结合开启了非常具体且高价值的场景:
- 产品配置器:用户从 Avalonia 面板修改选项,并立即在 Evergine 场景中看到结果。
- 工业数字孪生:3D 场景代表工业设施,Avalonia 显示实时数据、警报、KPI 或操作控件。
- 场景或资产编辑器:左侧是实体树,右侧是属性检查器,中央是 Evergine 3D 视图。
- HMI / 控制面板:使用 Avalonia 构建稳健的触摸界面,并对受控过程或机械进行 3D 可视化。
特别感谢
Avalonia 在 Evergine 中的集成,得益于与 Avalonia 团队工程师 Javier Suarez 的合作与参与。我们得以与他共同工作,他保证了此次首次集成以及未来的更新和版本。
3. Evergine Launcher 中的新模板
此版本最重要的新特性之一不仅仅是技术集成,而是可以从 Evergine Launcher 直接获取新模板。该模板允许直接创建一个基础的 Avalonia + Evergine 项目,而无需开发者手动构建所有初始基础设施。

从产品角度来看,这一点尤为重要。一项集成可能在技术上很强大,但如果开始使用它需要太多步骤、手动配置或内部知识,其采用就会变得更加困难。该模板减少了这种摩擦。它允许用户创建一个新项目、运行它,并快速拥有一个带有 Evergine 渲染表面的 Avalonia 应用程序,即可开始工作。
该模板充当了希望结合这两种技术的新项目的官方入口点。它定义了一个推荐的初始结构,解决了基础配置问题,并为开发者提供了一条清晰的路径,使其能够专注于构建应用程序,而不是花时间从头开始设置环境。
| 启动速度 | 在更短的时间内完成初始原型,无需从头设置环境。 |
| 一致性 | 所有项目都从符合 Evergine 推荐方法的结构开始。 |
| 减少不确定性 | 模板提供了一个功能基础,用户无需自行摸索如何集成引擎。 |
| 向新团队开放 | 便于已经使用 Evergine 但需要更丰富 UI 的团队采用。 |
4. 更新的 UIWindowSystemsDemo 示例
伴随新模板,示例 UIWindowSystemsDemo (包含在 Evergine 示例中) 也已更新,纳入了 Avalonia 集成。此仓库特别有用,因为它展示了将 Evergine 集成到使用不同窗口系统和界面框架的应用程序中的多种方式。该仓库包含使用 WPF、WinUI、MAUI、SDL 以及现在的 Avalonia 等技术的示例,使其成为理解 Evergine 如何在 .NET 和跨平台生态系统内与不同应用程序模型共存的实用参考。

将 Avalonia 纳入示例具有双重目的。一方面,它作为集成的技术演示:展示了真实应用程序的结构、Evergine 如何在 Avalonia 环境中初始化,以及 UI 和 3D 渲染之间的共存是如何组织的。另一方面,它为希望超越初始模板并在官方示例集中查阅已准备示例的开发者提供了学习材料。
这类示例非常重要,因为仅通过阅读描述通常无法完全理解 UI 系统集成。开发者需要查看文件夹结构、应用程序生命周期、控件初始化、场景连接、表面尺寸管理、窗口交互以及引擎在 UI 中的托管方式。一个可运行的示例能大大缩短理解正确方法所需的时间。
此外,由于与其他集成并列,该示例允许比较不同的技术。已经使用过 Evergine 与 WPF 或 WinUI 的开发者可以查阅新的 Avalonia 项目,更好地理解哪些地方发生了变化,哪些保持不变,以及这个新栈提供了哪些可能性。
为什么示例至关重要?
仅通过阅读描述无法完全理解 UI 系统集成。开发者需要看到一个可运行的示例,以减少采用时间并理解正确的方法。UIWindowSystemsDemo 就是那个参考。
5. 结论
Avalonia 进入 Evergine 代表着在持续拉近实时 3D 渲染与使用 .NET 构建的专业应用程序距离方面迈出了重要一步。Avalonia 带来了现代、开源、跨平台的 UI 技术,其开发模型为已经使用 C#、XAML 和 MVVM 的团队所熟悉。Evergine 则带来了工业 3D 层、场景、实时渲染以及创建可视化工具、配置器、模拟器和高级工具所需的能力。
新的集成允许在单个应用程序中结合这两个世界。通过 Evergine Launcher 提供的新模板降低了入门门槛,并提供了一种启动 Avalonia + Evergine 项目的直接方式。而更新的示例 UIWindowSystemsDemo 提供了一个实用参考,用于理解在 Evergine 已支持的 UI 系统集合中,这种集成是如何组织的。
因此,Avalonia 作为围绕工业 3D 体验创建丰富且跨平台界面的新选项,加入了 Evergine 生态系统。对于希望超越全屏模式并构建完整工具、编辑器或工业应用程序的 .NET 团队而言,Evergine 与 Avalonia 的结合如今提供了一个坚实、现代且可投入生产的基础。
| 新集成 | Evergine + Avalonia 于单个应用程序中(现代 UI + 3D 渲染) |
| 新模板 | 可从 Evergine Launcher 获取(从第一分钟起即可运行的项目) |
| 更新的示例 | UIWindowSystemsDemo 包含了 Avalonia,与 WPF、WinUI、MAUI 和 SDL 并列。 |
| .NET 生态系统 | 服务、MVVM、数据绑定、依赖注入、API 以及企业级逻辑与 3D 引擎集成。 |
| 跨平台 | 同时面向 Windows、macOS 和 Linux,不绑定单一界面技术栈。 |
