宝利德 發表於 2026-2-16 12:58:00

Zenith.NET v0.0.6 发布 🧧 — API 大幅精简,为 Metal 后端铺路

<p>大家好!我是 @qian-o,Zenith.NET v0.0.6 正式发布了!</p>
<p>这个版本的核心主题是 <strong>精简</strong>:为了让 API 更好地适配即将上线的 Metal 后端,我们对资源绑定模型、着色器阶段和光线追踪方案做了一次大规模的重构和瘦身。</p>
<blockquote>
<p>📦 GitHub 仓库:https://github.com/qian-o/Zenith.NET<br>
📚 文档站点:https://qian-o.github.io/Zenith.NET</p>
</blockquote>
<h2 id="-项目简介">🎯 项目简介</h2>
<p><strong>Zenith.NET</strong> 是一个现代的、跨平台的 .NET 图形与计算库,旨在为 .NET 开发者提供统一的 GPU 编程接口。无论你是要做高性能渲染、图形应用,还是 GPU 通用计算,Zenith.NET 都能帮你屏蔽底层 API 的差异,让代码在不同平台上无缝运行。</p>
<h2 id="-本次更新亮点">✨ 本次更新亮点</h2>
<h3 id="-resourceset--resourcetable">🔄 ResourceSet → ResourceTable</h3>
<p>资源集合从 <code>ResourceSet</code> 全面更名为 <code>ResourceTable</code>,绑定方式也做了简化:</p>
<p>之前:<code>commandBuffer.SetResourceSet(resourceSet, index);</code><br>
现在:<code>commandBuffer.SetResourceTable(resourceTable);</code></p>
<p>不再需要手动传入索引,使用更直观。</p>
<h3 id="-单一-resourcelayout">📦 单一 ResourceLayout</h3>
<p>所有管线描述(Graphics / Compute / MeshShading)中的 <code>ResourceLayout[]</code> 统一改为单个 <code>ResourceLayout?</code>。这个改动大幅降低了资源绑定的复杂度,同时也更贴合 Metal 的设计模型,为后续 Metal 后端上线扫清了障碍。</p>
<h3 id="-移除-raytracingpipeline拥抱-rayquery">🚀 移除 RayTracingPipeline,拥抱 RayQuery</h3>
<p>这是本次最大的变更。我们移除了独立的 <code>RayTracingPipeline</code>,包括 <code>HitGroup</code>、<code>DispatchRays()</code> 等全部相关 API。</p>
<p>光线追踪现在统一通过 <strong>RayQuery</strong> 实现,可以在<strong>任意着色器阶段</strong>中使用,不再需要专用的光追管线。这个方向更灵活,跨后端兼容性也更好。</p>
<h3 id="️-清理历史着色器阶段">✂️ 清理历史着色器阶段</h3>
<p>移除了 <code>Hull</code>、<code>Domain</code>、<code>Geometry</code> 等传统着色器阶段,以及所有光追专用阶段(<code>RayGeneration</code>、<code>Miss</code>、<code>ClosestHit</code> 等)。<code>PrimitiveTopology</code> 也精简掉了邻接拓扑和 <code>PatchList</code>。</p>
<p>这些功能在现代图形 API 中已经被 Mesh Shading 和 RayQuery 取代,清理后 API 表面更小更干净。</p>
<h3 id="-meshshading-线程组大小">📐 MeshShading 线程组大小</h3>
<p><code>MeshShadingPipelineDesc</code> 新增了 Object 和 Mesh 阶段的线程组大小字段,给予开发者更精细的调度控制。</p>
<h3 id="-apple-平台统一命名">🍎 Apple 平台统一命名</h3>
<p>文档和 Issue 模板中原来分开的 "macOS" 和 "iOS" 统一为 <strong>Apple</strong> 标签,更清晰地表达对整个苹果生态的支持。</p>
<h2 id="️-破坏性变更一览">⚠️ 破坏性变更一览</h2>
<p>如果你从 v0.0.5 升级,请注意以下改动:</p>
<ul>
<li><code>ResourceSet</code> / <code>ResourceSetDesc</code> → <code>ResourceTable</code> / <code>ResourceTableDesc</code></li>
<li><code>ResourceLayout[]</code> → <code>ResourceLayout?</code></li>
<li><code>SetResourceSet(resourceSet, index)</code> → <code>SetResourceTable(resourceTable)</code></li>
<li><code>RayTracingPipeline</code>、<code>HitGroup</code>、<code>DispatchRays()</code> 已移除,请改用 <strong>RayQuery</strong></li>
<li><code>Hull</code>、<code>Domain</code>、<code>Geometry</code> 着色器阶段已移除</li>
<li><code>PrimitiveTopology</code> 邻接拓扑和 <code>PatchList</code> 已移除</li>
</ul>
<h2 id="️-接下来的计划">🗺️ 接下来的计划</h2>
<ul>
<li><strong>Metal 后端</strong> — 将在近期版本中正式上线,初步计划基于 SharpMetal 或 .NET <code>macios</code> TFM 搭建,具体技术路线还在评估中</li>
<li><strong>SkiaSharp 集成</strong></li>
</ul>
<h2 id="-当前状态">🚧 当前状态</h2>
<ul>
<li>⚠️ <strong>预览版本</strong> — API 后续仍可能有破坏性变更</li>
<li>⚠️ <strong>Metal 后端开发中</strong> — macOS / iOS 原生支持即将到来</li>
<li>✅ <strong>文档已上线</strong> — 入门教程和 API 参考已可用</li>
<li>✅ <strong>6 大 UI 框架集成</strong> — 覆盖主流 .NET UI 方案</li>
</ul>
<h2 id="-讨论与反馈">💬 讨论与反馈</h2>
<p>如果你有任何疑问、建议、Bug 反馈或功能请求,欢迎通过 GitHub Issues 和 Discussions 交流。</p>
<hr>
<p>🧧 今天是除夕,祝全球华人 <strong>2026 新春快乐,马年大吉,万事如意!</strong></p>
<p>感谢大家的关注和支持,欢迎 Star ⭐ 和提 Issue,我们下个版本见!🚀</p><br><br>
来源:https://www.cnblogs.com/xymfblogs/p/19620088
頁: [1]
查看完整版本: Zenith.NET v0.0.6 发布 🧧 — API 大幅精简,为 Metal 后端铺路