Zenith.NET v0.0.2 发布 🎉 — 统一的 .NET GPU 编程库,支持 DX12/Vulkan + 6 大 UI 框架
<p>大家好!我是 @qian-o,今天很高兴向大家介绍我的新项目 <strong>Zenith.NET</strong> 的首个公开预览版本!</p><h2 id="-项目简介">🎯 项目简介</h2>
<p><strong>Zenith.NET</strong> 是一个现代的、跨平台的 .NET 图形与计算库,旨在为 .NET 开发者提供统一的 GPU 编程接口。无论你是要做高性能渲染、图形应用,还是 GPU 通用计算,Zenith.NET 都能帮你屏蔽底层 API 的差异,让代码在不同平台上无缝运行。</p>
<h2 id="️-效果展示">🖼️ 效果展示</h2>
<blockquote>
<p>以下是使用 Zenith.NET 实现的 Sponza 场景渲染示例,展示了延迟渲染、级联阴影贴图(CSM)、地面实况环境光遮蔽(GTAO)等高级渲染技术</p>
</blockquote>
<img src="https://img2024.cnblogs.com/blog/1742227/202601/1742227-20260105161253137-1774391089.png">
<img src="https://img2024.cnblogs.com/blog/1742227/202601/1742227-20260105161322700-2047206304.png">
<p><strong>示例项目</strong>: SponzaScene — 完整的延迟渲染管线实现</p>
<h2 id="-核心特性">✨ 核心特性</h2>
<ul>
<li><strong>🔄 统一的 GPU API</strong> — 一套代码,多个后端(DirectX12、Vulkan,Metal 规划中)</li>
<li><strong>🎨 丰富的 UI 框架集成</strong> — 支持 Avalonia、MAUI、WinForms、WinUI、WPF 等 6 大框架</li>
<li><strong>⚡ 高性能设计</strong> — 充分利用现代 GPU 能力,支持 Native AOT 编译</li>
<li><strong>🧩 模块化架构</strong> — 核心库 + 后端 + 扩展的清晰分层设计</li>
<li><strong>🛠️ 实用扩展</strong> — 内置 ImGui、ImageSharp、Slang 着色器编译器等集成</li>
</ul>
<h2 id="-nuget-包">📦 NuGet 包</h2>
<h3 id="核心库">核心库</h3>
<ul>
<li><code>Zenith.NET</code> — 核心图形抽象层</li>
</ul>
<h3 id="图形后端">图形后端</h3>
<ul>
<li><code>Zenith.NET.DirectX12</code> — DirectX 12 后端 ✅</li>
<li><code>Zenith.NET.Vulkan</code> — Vulkan 后端 ✅</li>
<li><code>Zenith.NET.Metal</code> — Metal 后端 🚧 规划中</li>
</ul>
<h3 id="ui-框架集成">UI 框架集成</h3>
<ul>
<li><code>Zenith.NET.Views</code> — 共享视图抽象</li>
<li><code>Zenith.NET.Views.Avalonia</code> — Avalonia UI</li>
<li><code>Zenith.NET.Views.Maui</code> — .NET MAUI</li>
<li><code>Zenith.NET.Views.WinForms</code> — Windows Forms</li>
<li><code>Zenith.NET.Views.WinUI</code> — WinUI 3 / Uno Platform</li>
<li><code>Zenith.NET.Views.WPF</code> — WPF</li>
</ul>
<h3 id="扩展库">扩展库</h3>
<ul>
<li><code>Zenith.NET.Extensions.ImageSharp</code> — 纹理加载</li>
<li><code>Zenith.NET.Extensions.ImGui</code> — Dear ImGui 集成</li>
<li><code>Zenith.NET.Extensions.Slang</code> — Slang 着色器编译器</li>
<li><code>Zenith.NET.Extensions.Skia</code> — SkiaSharp 集成 🚧 规划中</li>
</ul>
<h2 id="-如何开始">🎓 如何开始?</h2>
<h3 id="️-当前状态说明">⚠️ 当前状态说明</h3>
<p><strong>这是一个早期预览版本</strong>,目前还没有完整的文档和入门指南。如果你想了解如何使用 Zenith.NET,推荐通过以下方式:</p>
<ol>
<li><strong>📂 查看示例项目</strong> — Zenith.NET.Samples 仓库展示了各个 UI 框架的集成方式</li>
<li><strong>🧪 参考实验代码</strong> — 主仓库的 Experiments 目录包含了更多示例</li>
<li><strong>🔍 参考 Veldrid</strong> — Zenith.NET 的设计结构与 Veldrid 非常相似,如果你熟悉 Veldrid,上手会很快</li>
<li><strong>💡 阅读源码</strong> — 核心 API 设计简洁清晰,可以直接阅读源码了解用法</li>
</ol>
<h3 id="-完整示例">📚 完整示例</h3>
<p>想要看完整的可运行项目?查看以下示例:</p>
<ul>
<li><strong>核心渲染逻辑</strong> — 完整的渲染器实现</li>
<li><strong>WPF 集成示例</strong> — 在 WPF 中使用 Zenith.NET</li>
<li><strong>MAUI 集成示例</strong> — 在 .NET MAUI 中使用</li>
<li><strong>Avalonia 集成示例</strong> — 在 Avalonia 中使用</li>
<li><strong>更多 UI 框架示例</strong> — WinForms、WinUI、Uno Platform</li>
</ul>
<h3 id="️-快速安装">🛠️ 快速安装</h3>
<pre><code class="language-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)
</code></pre>
<h2 id="-设计理念">🎯 设计理念</h2>
<p>如果你熟悉 <strong>Veldrid</strong>,你会发现 Zenith.NET 的设计非常相似:</p>
<ul>
<li>统一的抽象层,屏蔽底层 API 差异</li>
<li>显式的资源管理和命令记录</li>
<li>清晰的对象生命周期</li>
</ul>
<p>同时,Zenith.NET 在此基础上增加了:</p>
<ul>
<li>更现代的 .NET API 设计(支持 .NET 10+)</li>
<li>原生 AOT 支持</li>
<li>更丰富的 UI 框架集成</li>
<li>内置常用扩展(ImGui、Slang 等)</li>
</ul>
<h2 id="-当前限制">🚧 当前限制</h2>
<p>作为早期预览版,请注意:</p>
<ul>
<li>❌ <strong>暂无系统化文档</strong> — 文档正在编写中,目前只能通过示例学习</li>
<li>❌ <strong>API 可能变化</strong> — 后续版本中 API 可能会有破坏性更改</li>
<li>⚠️ <strong>Metal 后端未完成</strong> — macOS/iOS 支持还在开发中</li>
<li>⚠️ <strong>可能存在 Bug</strong> — 这是预览版,欢迎反馈问题</li>
</ul>
<h2 id="-为什么分享">🤝 为什么分享?</h2>
<p>虽然项目还在早期阶段,但我希望:</p>
<ol>
<li><strong>收集反馈</strong> — 听听社区对 API 设计和功能的意见</li>
<li><strong>寻找协作者</strong> — 如果你对跨平台图形编程感兴趣,欢迎参与</li>
<li><strong>推动进展</strong> — 早期曝光能激励我更快完善文档和功能</li>
<li><strong>帮助他人</strong> — 也许有人正在寻找类似的解决方案</li>
</ol>
<h2 id="-链接">🔗 链接</h2>
<ul>
<li>📦 <strong>GitHub 仓库</strong>: https://github.com/qian-o/Zenith.NET</li>
<li>🎨 <strong>示例仓库</strong>: https://github.com/qian-o/Zenith.NET.Samples</li>
<li>📥 <strong>NuGet 包</strong>: https://www.nuget.org/packages/Zenith.NET</li>
<li>📋 <strong>发布说明</strong>: https://github.com/qian-o/Zenith.NET/releases/tag/v0.0.2</li>
</ul>
<h2 id="-讨论与反馈">💬 讨论与反馈</h2>
<p>如果你:</p>
<ul>
<li>✅ 对项目有任何疑问或建议</li>
<li>✅ 发现了 Bug 或问题</li>
<li>✅ 想要贡献代码或文档</li>
<li>✅ 有功能请求</li>
</ul>
<p>欢迎在以下地方交流:</p>
<ul>
<li>GitHub Discussions — 一般讨论和问题</li>
<li>GitHub Issues — Bug 报告和功能请求</li>
</ul>
<h2 id="-致谢">🙏 致谢</h2>
<p>感谢所有启发了这个项目的开源项目,特别是:</p>
<ul>
<li><strong>Veldrid</strong> — 优秀的跨平台图形库,深刻影响了 Zenith.NET 的架构设计</li>
<li><strong>Silk.NET</strong> — 提供了底层图形 API 的 .NET 绑定</li>
<li><strong>Slang</strong> — 强大的跨平台着色器编译器</li>
</ul>
<hr>
<p><strong>注意</strong>:这是一个个人项目,目前还在积极开发中。如果你决定在生产环境使用,请做好充分测试!</p>
<p>期待听到大家的反馈!🚀</p>
<hr><br><br>
来源:https://www.cnblogs.com/xymfblogs/p/19443277
頁:
[1]