Zenith.NET v0.0.2 发布 🎉 — 统一的 .NET GPU 编程库,支持 DX12/Vulkan + 6 大 UI 框架

大家好!我是 @qian-o,今天很高兴向大家介绍我的新项目 Zenith.NET 的首个公开预览版本!

🎯 项目简介

Zenith.NET 是一个现代的、跨平台的 .NET 图形与计算库,旨在为 .NET 开发者提供统一的 GPU 编程接口。无论你是要做高性能渲染、图形应用,还是 GPU 通用计算,Zenith.NET 都能帮你屏蔽底层 API 的差异,让代码在不同平台上无缝运行。

🖼️ 效果展示

以下是使用 Zenith.NET 实现的 Sponza 场景渲染示例,展示了延迟渲染、级联阴影贴图(CSM)、地面实况环境光遮蔽(GTAO)等高级渲染技术

示例项目 : SponzaScene --- 完整的延迟渲染管线实现

✨ 核心特性

  • 🔄 统一的 GPU API --- 一套代码,多个后端(DirectX12、Vulkan,Metal 规划中)
  • 🎨 丰富的 UI 框架集成 --- 支持 Avalonia、MAUI、WinForms、WinUI、WPF 等 6 大框架
  • ⚡ 高性能设计 --- 充分利用现代 GPU 能力,支持 Native AOT 编译
  • 🧩 模块化架构 --- 核心库 + 后端 + 扩展的清晰分层设计
  • 🛠️ 实用扩展 --- 内置 ImGui、ImageSharp、Slang 着色器编译器等集成

📦 NuGet 包

核心库

  • Zenith.NET --- 核心图形抽象层

图形后端

  • Zenith.NET.DirectX12 --- DirectX 12 后端 ✅
  • Zenith.NET.Vulkan --- Vulkan 后端 ✅
  • Zenith.NET.Metal --- Metal 后端 🚧 规划中

UI 框架集成

  • Zenith.NET.Views --- 共享视图抽象
  • Zenith.NET.Views.Avalonia --- Avalonia UI
  • Zenith.NET.Views.Maui --- .NET MAUI
  • Zenith.NET.Views.WinForms --- Windows Forms
  • Zenith.NET.Views.WinUI --- WinUI 3 / Uno Platform
  • Zenith.NET.Views.WPF --- WPF

扩展库

  • Zenith.NET.Extensions.ImageSharp --- 纹理加载
  • Zenith.NET.Extensions.ImGui --- Dear ImGui 集成
  • Zenith.NET.Extensions.Slang --- Slang 着色器编译器
  • Zenith.NET.Extensions.Skia --- SkiaSharp 集成 🚧 规划中

🎓 如何开始?

⚠️ 当前状态说明

这是一个早期预览版本,目前还没有完整的文档和入门指南。如果你想了解如何使用 Zenith.NET,推荐通过以下方式:

  1. 📂 查看示例项目 --- Zenith.NET.Samples 仓库展示了各个 UI 框架的集成方式
  2. 🧪 参考实验代码 --- 主仓库的 Experiments 目录包含了更多示例
  3. 🔍 参考 Veldrid --- Zenith.NET 的设计结构与 Veldrid 非常相似,如果你熟悉 Veldrid,上手会很快
  4. 💡 阅读源码 --- 核心 API 设计简洁清晰,可以直接阅读源码了解用法

📚 完整示例

想要看完整的可运行项目?查看以下示例:

🛠️ 快速安装

bash 复制代码
# 安装核心包
dotnet add package Zenith.NET

# 选择图形后端
dotnet add package Zenith.NET.DirectX12
# 或
dotnet add package Zenith.NET.Vulkan

# 如果需要 UI 集成
dotnet add package Zenith.NET.Views.(Avalonia、Maui、WinForms、WinUI、WPF)

🎯 设计理念

如果你熟悉 Veldrid,你会发现 Zenith.NET 的设计非常相似:

  • 统一的抽象层,屏蔽底层 API 差异
  • 显式的资源管理和命令记录
  • 清晰的对象生命周期

同时,Zenith.NET 在此基础上增加了:

  • 更现代的 .NET API 设计(支持 .NET 10+)
  • 原生 AOT 支持
  • 更丰富的 UI 框架集成
  • 内置常用扩展(ImGui、Slang 等)

🚧 当前限制

作为早期预览版,请注意:

  • 暂无系统化文档 --- 文档正在编写中,目前只能通过示例学习
  • API 可能变化 --- 后续版本中 API 可能会有破坏性更改
  • ⚠️ Metal 后端未完成 --- macOS/iOS 支持还在开发中
  • ⚠️ 可能存在 Bug --- 这是预览版,欢迎反馈问题

🤝 为什么分享?

虽然项目还在早期阶段,但我希望:

  1. 收集反馈 --- 听听社区对 API 设计和功能的意见
  2. 寻找协作者 --- 如果你对跨平台图形编程感兴趣,欢迎参与
  3. 推动进展 --- 早期曝光能激励我更快完善文档和功能
  4. 帮助他人 --- 也许有人正在寻找类似的解决方案

🔗 链接

💬 讨论与反馈

如果你:

  • ✅ 对项目有任何疑问或建议
  • ✅ 发现了 Bug 或问题
  • ✅ 想要贡献代码或文档
  • ✅ 有功能请求

欢迎在以下地方交流:

🙏 致谢

感谢所有启发了这个项目的开源项目,特别是:

  • Veldrid --- 优秀的跨平台图形库,深刻影响了 Zenith.NET 的架构设计
  • Silk.NET --- 提供了底层图形 API 的 .NET 绑定
  • Slang --- 强大的跨平台着色器编译器

注意: 这是一个个人项目,目前还在积极开发中。如果你决定在生产环境使用,请做好充分测试!

期待听到大家的反馈!🚀