2022年9月28日

ImGui 扩展及 Imguizmo、Implot、Imnodes

在 Evergine 的最新版本中,我们 增加了对 ImGui 库 及其三个最佳附加模块的支持,以便在 您的 Evergine 应用程序 中实现丰富的界面和工具。

 

通过将 Evergine.Bindings.ImGui 包添加到您的项目中,并按需添加任意受支持的扩展 (Evergine.Bindings.Imguizmo、Evergine.Bindings.Implot、Evergine.Bindings.Imnodes),您就可以开始使用它的简洁直观的 API 来创建小型工具控件,并对应用程序的各个方面进行可视化。 

但是,ImGui 到底是什么?

如果您还没有听说过,ImGui 是一个独立的 库,用于 创建精巧的界面,这些界面驻留在图形应用程序内部,并像虚拟世界中的其他元素一样进行渲染,但以 2D 形式呈现。通过这种方式,可以在应用程序内部为图形编辑器等软件创建完整的复杂界面。 

图 1. 在 Tracy Profiler 中使用 ImGui 的示例

那么 Imguizmo、Implot 和 Imnodes 呢?

Imguizmo 是 ImGui 的一个扩展,允许 为 3D 对象创建特定控件,例如 相机方向操纵器,以及允许实时旋转 和 平移 4×4 矩阵 的控件。

Implot 是另一个扩展,用于在 ImGui 窗口内创建多种类型的图表,在运行时可视化 变化的变量 非常有用。

另一方面,Imnodes 则 添加了 一个 有用的控件,用于创建和可视化图形并修改其 连接 和节点。

如何在您的应用程序中使用它

首先,添加 NuGet 依赖项后,您需要在场景中注册 ImGui 管理器:

然后,只需创建调用 ImGui API 的组件即可开始渲染新控件。文档 中有更详细的信息,我们刚刚发布了一个小型 演示,展示了主要功能。

 

我们将保持我们的绑定与 ImGui 开发同步更新,所以不必担心停留在旧版本上。目前,我们仅支持 Windows (x86-x64),但我们计划很快添加对 ARM64 和 Linux 平台的支持。除此之外,我们还将在不久的将来添加更多扩展,所以别忘了在 Twitter 上关注我们(@EvergineTeam)以及我们的YouTube 频道。