把矢量图形在构建期烘成 GPU 纹理的绘图库
来源:slughorn.io — 2026-10
📋 概述
slughorn 是一个 MIT 许可的 GPU 矢量图形库,核心是把浏览器的 Canvas 式 API 搬到 GPU 上。使用时先建一个 2048 大小的 Atlas 作为 GPU 纹理后备存储,再用 Canvas 逐层叠出复合图形——矩形填充、圆角面板、线性渐变,甚至用反向绕序的圆弧在面板上"打洞"。所有绘制在 build() 时一次性烘进图集:曲线数据落在 RGBA32F 的 curve_texture,带状数据落在 RGBA16UI 的 band_texture,运行时不再做任何三角化。作者强调这就是与常见方案的区别——繁重的工作放在构建期,运行时留给 GPU 的是一条干净的管线。项目提供 Python 绑定与 C++ 接口,附用户指南、源码仓库、带渲染结果的示例,以及路线图与赞助方式。
🔑 核心要点
- 架构一句话:Atlas 是 GPU 纹理后备存储,Canvas 负责在其上叠图形,build() 时一次性烘成两张纹理
- 输出是打包好的数据而非几何:curve_texture 为 RGBA32F,band_texture 为 RGBA16UI
- 卖点是零运行时三角化:所有繁重工作放在构建期完成,运行时只把干净的结果交给 GPU 管线
- API 刻意贴近前端习惯:Canvas 接口对应浏览器 canvas,复合图形可叠填充、描边与渐变
- 布尔运算靠绕序实现:用反向绕序的圆弧在同一面板上打出圆孔
- 工程信息齐全:MIT 许可,提供 Python 绑定与 C++ 头文件接口,含示例与路线图
💡 金句
复合图形把填充、描边与渐变叠进一个可直接上传 GPU 的图集,运行时没有任何三角化开销——繁重的工作只在构建期做一次,留下的是一条干净、快速的 GPU 管线。
👍 0
👎 0
← 返回 Lobsters 首页