enith.NET v0.0.6 发布 [特殊字符] — API 大幅精简,为 Metal 后端铺路

张开发
2026/4/3 20:48:29 15 分钟阅读
enith.NET v0.0.6 发布 [特殊字符] — API 大幅精简,为 Metal 后端铺路
✨ 本次更新亮点 ResourceSet → ResourceTable资源集合从ResourceSet全面更名为ResourceTable绑定方式也做了简化之前commandBuffer.SetResourceSet(resourceSet, index);现在commandBuffer.SetResourceTable(resourceTable);不再需要手动传入索引使用更直观。 单一 ResourceLayout所有管线描述Graphics / Compute / MeshShading中的ResourceLayout[]统一改为单个ResourceLayout?。这个改动大幅降低了资源绑定的复杂度同时也更贴合 Metal 的设计模型为后续 Metal 后端上线扫清了障碍。 移除 RayTracingPipeline拥抱 RayQuery这是本次最大的变更。我们移除了独立的RayTracingPipeline包括HitGroup、DispatchRays()等全部相关 API。光线追踪现在统一通过RayQuery实现可以在任意着色器阶段中使用不再需要专用的光追管线。这个方向更灵活跨后端兼容性也更好。✂️ 清理历史着色器阶段移除了Hull、Domain、Geometry等传统着色器阶段以及所有光追专用阶段RayGeneration、Miss、ClosestHit等。PrimitiveTopology也精简掉了邻接拓扑和PatchList。这些功能在现代图形 API 中已经被 Mesh Shading 和 RayQuery 取代清理后 API 表面更小更干净。 MeshShading 线程组大小MeshShadingPipelineDesc新增了 Object 和 Mesh 阶段的线程组大小字段给予开发者更精细的调度控制。 Apple 平台统一命名文档和 Issue 模板中原来分开的 macOS 和 iOS 统一为Apple标签更清晰地表达对整个苹果生态的支持。⚠️ 破坏性变更一览如果你从 v0.0.5 升级请注意以下改动ResourceSet/ResourceSetDesc→ResourceTable/ResourceTableDescResourceLayout[]→ResourceLayout?SetResourceSet(resourceSet, index)→SetResourceTable(resourceTable)RayTracingPipeline、HitGroup、DispatchRays()已移除请改用RayQueryHull、Domain、Geometry着色器阶段已移除PrimitiveTopology邻接拓扑和PatchList已移除️ 接下来的计划Metal 后端— 将在近期版本中正式上线初步计划基于 SharpMetal 或 .NETmaciosTFM 搭建具体技术路线还在评估中SkiaSharp 集成

更多文章