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 UIZenith.NET.Views.Maui— .NET MAUIZenith.NET.Views.WinForms— Windows FormsZenith.NET.Views.WinUI— WinUI 3 / Uno PlatformZenith.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,推荐通过以下方式:
- 📂 查看示例项目 — Zenith.NET.Samples 仓库展示了各个 UI 框架的集成方式
- 🧪 参考实验代码 — 主仓库的 Experiments 目录包含了更多示例
- 🔍 参考 Veldrid — Zenith.NET 的设计结构与 Veldrid 非常相似,如果你熟悉 Veldrid,上手会很快
- 💡 阅读源码 — 核心 API 设计简洁清晰,可以直接阅读源码了解用法
📚 完整示例
想要看完整的可运行项目?查看以下示例:
- 核心渲染逻辑 — 完整的渲染器实现
- WPF 集成示例 — 在 WPF 中使用 Zenith.NET
- MAUI 集成示例 — 在 .NET MAUI 中使用
- Avalonia 集成示例 — 在 Avalonia 中使用
- 更多 UI 框架示例 — WinForms、WinUI、Uno Platform
🛠️ 快速安装
# 安装核心包
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 — 这是预览版,欢迎反馈问题
🤝 为什么分享?
虽然项目还在早期阶段,但我希望:
- 收集反馈 — 听听社区对 API 设计和功能的意见
- 寻找协作者 — 如果你对跨平台图形编程感兴趣,欢迎参与
- 推动进展 — 早期曝光能激励我更快完善文档和功能
- 帮助他人 — 也许有人正在寻找类似的解决方案
🔗 链接
- 📦 GitHub 仓库: https://github.com/qian-o/Zenith.NET
- 🎨 示例仓库: https://github.com/qian-o/Zenith.NET.Samples
- 📥 NuGet 包: https://www.nuget.org/packages/Zenith.NET
- 📋 发布说明: https://github.com/qian-o/Zenith.NET/releases/tag/v0.0.2
💬 讨论与反馈
如果你:
- ✅ 对项目有任何疑问或建议
- ✅ 发现了 Bug 或问题
- ✅ 想要贡献代码或文档
- ✅ 有功能请求
欢迎在以下地方交流:
- GitHub Discussions — 一般讨论和问题
- GitHub Issues — Bug 报告和功能请求
🙏 致谢
感谢所有启发了这个项目的开源项目,特别是:
- Veldrid — 优秀的跨平台图形库,深刻影响了 Zenith.NET 的架构设计
- Silk.NET — 提供了底层图形 API 的 .NET 绑定
- Slang — 强大的跨平台着色器编译器
注意: 这是一个个人项目,目前还在积极开发中。如果你决定在生产环境使用,请做好充分测试!
期待听到大家的反馈!🚀

浙公网安备 33010602011771号