2026年5月26日

无限可能的世界:隆重推出 Evergine.Cesium 插件

简介

在现代软件开发中,尤其是在工业和商业领域,将数据置于真实世界环境中进行可视化的需求正快速增长。从跨大陆追踪资产到管理智慧城市基础设施,应用程序越来越需要一个地理参考框架。然而,从零开始构建一个高性能、可交互的 3D 地球是一项重大的技术挑战。

我们很高兴能帮助开发者应对这一挑战。作为最新 Evergine 版本的一部分,我们推出了 Evergine.Cesium 插件。我们的目标是提供一个稳健、深度集成的解决方案,将行星级渲染能力带入 Evergine 生态系统。

这个新插件让你能够构建需要全球视角的应用程序,无论是精细的数字孪生、专业的培训模拟器,还是交互式数据可视化工具。这是一项强大的新能力,旨在与你已熟悉的 C# 和 .NET 环境无缝协作。

渲染数字地球的挑战

将 3D 地球集成到应用程序中并非易事。技术障碍巨大且涉及多个方面,通常需要专门的专业知识。

首先是庞大的数据量。一个包含地形、卫星图像和 3D 建筑的高分辨率地球模型,其数据量动辄以 TB 计。一次性将这些信息加载到内存中是不现实的。因此,一个稳健的流式传输和细节层次(LOD)系统至关重要。该系统必须智能地仅获取用户当前看到的数据,并根据相机位置动态调整质量。

其次,开发者必须处理复杂的坐标系统转换。要将一个物体精确放置在特定的真实世界位置,需要在经纬度、海拔等地理坐标与引擎的 3D 笛卡尔坐标系之间进行转换。这涉及复杂的数学运算,以考虑地球的曲率,确保当用户在地球上平移和缩放时,物体能保持正确锚定。

最后,所有这些都必须在保持良好渲染性能的前提下完成。新地图块的持续加载、卸载和渲染会给应用程序带来巨大压力,一个优化不佳的系统会迅速导致用户体验缓慢且无响应。这些综合挑战常常会占用大量本应用于开发核心功能的资源。

什么是 Evergine.Cesium?

Evergine.Cesium 是一个第一方插件,为全球渲染的挑战提供了全面的解决方案。它旨在充当你的 Evergine 应用程序与 Cesium 平台丰富生态系统之间的稳固桥梁。它不仅仅是一个简单的渲染器,更是一个处理整个地理空间数据管道的全功能集成方案。

为了实现这一强大能力,该插件编排了一个精密的架构。它利用 Cesium Native,即开源的 C++ 库,来处理 3D 地理空间内容(如 3D Tiles 格式)所特有的复杂数学运算和数据结构。我们的工程工作重点是将这一核心处理能力与 Evergine 自身强大的渲染引擎深度集成。Evergine.Cesium 充当智能桥梁,管理数据流入场景图,协调内存管理器,并最终渲染出令人惊叹的视觉效果。这种协同方法提供了一个稳健、高性能的插件,感觉就像是引擎的自然延伸,并通过简洁而强大的 C# API 暴露出来。

核心能力

Evergine.Cesium 提供了一系列丰富的功能,旨在创建动态、交互式和数据驱动的地理空间应用程序。

  • 高性能地球渲染: 该插件与 Evergine 渲染管线的深度集成,确保了核心地理空间引擎的高速输出能为最终用户带来流畅、灵敏的体验。
  • 无缝数据集成: 它直接连接到 Cesium ion,这是一个精选的全球 3D 内容源,让你能即时访问全球地形、高分辨率卫星图像和 3D 城市模型。
  • 基于 3D Tiles 标准: 该插件围绕 OGC 3D Tiles 格式构建,这是一种专为流式传输大规模异构 3D 地理空间数据集而设计的开放标准。
  • 内置地理编码服务: 通过集成对 Azure Maps 的支持,您可以轻松实现地理编码功能,让用户能够搜索真实世界的地址和位置,然后将相机直接飞到地球上的对应坐标。
  • 动态且精确的太阳光照: 该插件包含模拟真实光照条件的组件。您可以创建一个动态太阳,使其根据一天中的时间和相机在地球上的位置精确改变位置,为您的模拟增添一层真实感。
  • 直观的世界导航: 提供了一个专用的世界相机控制器,为在球形环境中导航提供了直观的“飞至”体验,使用户能够轻松探索您的场景。

超越查看:将您的内容放置在地球上

动态世界地球是一个强大的基础,但当它成为您自己的数据和创作的画布时,其真正价值才得以释放。毕竟,数字孪生不仅仅是一张地图;它是一个真实世界环境的生动再现,充满了独特的资产和信息。

认识到这一点,我们为 Evergine.Cesium 配备了一套简单、基于组件的工作流,用于将您自己的 3D 模型以地理精度放置在地球上。这个过程称为地理配准,由插件内的直观工具处理。

对于开发者来说,工作流程很简单。您可以取用任何已导入到 Evergine 项目中的 3D 模型,并通过添加一个专用组件,将其锚定到一个精确的真实世界位置。您只需指定纬度、经度和海拔高度,Evergine.Cesium 便会处理所有复杂的变换,以在地球曲面上正确放置和定向对象。

此功能对于广泛的应用至关重要。您现在可以:

  • 为建筑可视化填充带有自定义建筑模型的城市。
  • 放置车辆、船舶或飞机的模型,用于高级物流和交通模拟。
  • 在 IoT 传感器的位置显示动画 3D 标记,以可视化实时数据馈送。
  • 在更大的地理环境中,构建工业场地(如风电场或工厂)的详细数字孪生。

注意: 对于需要高效流式传输的大量自定义资产,最好将它们处理为自定义 3D Tileset 并托管在 Cesium ion 上。

这套工具将 Evergine.Cesium 从一个简单的世界查看器提升为一个真正的交互式平台,用于构建丰富的、数据驱动的地理空间应用程序。

.NET 地理空间开发的变革者

关键优势在于打造了统一的端到端 C# 工作流。现在,您无需离开常用的 .NET 工具和库,即可构建、测试和部署复杂的全球可视化应用程序。这种无缝集成意味着您可以将精美的交互式 3D 地球与使用 MAUI、Avalonia 或 WPF 等熟悉框架构建的复杂用户界面相结合,使其成为数据密集型工业和企业级应用的理想选择。

此外,此插件允许您与 Evergine 的其他功能创建强大的协同效应。想象一下,将一个具有全球感知的数字孪生与 Evergine 对大规模点云的支持相结合,或者将来自 3D Tiles 的高分辨率摄影测量数据与来自工业格式的精确 CAD 模型一起渲染。通过将世界级的地理空间渲染添加到现有功能集中,Evergine.Cesium 不仅仅是增加了一个功能;它解锁了可以从头开始用 C# 构建的全新应用程序类别。

入门指南

准备好将世界带入您的项目了吗?集成 Evergine.Cesium 被设计为一个简单的过程。

首先,确保您已安装 Evergine 和 .NET 10 SDK。然后,只需将 Evergine.Cesium NuGet 包添加到您的 Evergine 项目中。

从那里,您可以通过将 CesiumCoordinator 注册为场景中的管理器来初始化整个系统。这个中央管理器处理从连接到数据源到设置地球外观的所有事务。下面的示例展示了一个典型设置,我们配置了一个 Cesium ion 令牌并将基础影像设置为 Bing Maps Aerial。

using Evergine.Cesium;
using Evergine.Framework;
using Evergine.UI;
public class MyScene : Scene
{
    public override void RegisterManagers()
    {
        base.RegisterManagers();
        // The CesiumCoordinator manager requires an entity tagged as "MainCamera" with a Camera3D component.
        var cesium = new CesiumCoordinator()
        {
            AccessToken = "<YOUR_CESIUM_ION_TOKEN>",
            AzureMapsKey = "<YOUR_OPTIONAL_AZURE_MAPS_KEY>",
            EntityManager = this.Managers.EntityManager,
            OverlayProvider = TerrainOverlayProvider.BingAerial,
        };
        this.Managers.AddManager(cesium);
    }
}

通过这个简单的设置,您现在在应用程序中拥有了一个完全交互式、渲染精美的 3D 地球。这是您开始构建世界的完美起点。

作者
José Antonio Collado Araque
图形工程师 - 研究员