返回

文章详情

Slughorn:用于OpenGL/OSG/Vulkan/GPU API的Slug字体/图形渲染库(MIT许可)

Hacker News2026年7月8日 19:57

Slughorn:将Slug风格的GPU曲线渲染应用于文本之外 2026年3月17日,Eric Lengyel使他的Slug技术完全不受专利限制(https://terathon.com/blog/decade-slug.html)。作为长期的图形程序员和开源贡献者,尤其是在OpenSceneGraph、VulkanSceneGraph和相关可视化工作方面,我们不会让它静静地待着太久。3月19日,我们开始了一些概念验证演示,并深入研究Slug算法。我们的目标是将Slug高质量GPU字形渲染的核心思想扩展到其原始文本渲染用例之外。在过去的两个月半里,最初作为一个旁支研究实验的项目已经变成了我们现在准备展示给其他开发者的东西。请做好准备。我们将该项目称为Slughorn。这个名字有点字面化。这个项目的目标是提供一个单一的开源库,将Slug风格的数据挤入其他可视化上下文:OpenGL、Vulkan、DirectX、场景图、HUD系统、3D UI工具以及人们已经使用的其他内容。Slughorn项目是MIT许可的开源。可以在商业上使用,无需支付版税或前期许可费用。它使用C++20编写,使用CMake构建,并且没有必要的第三方依赖。我们已在Windows和Linux上进行了测试。在macOS以及暴露现代GPU API的嵌入式或移动平台上使用也是可行的,但这些目标仍需更多实际测试。GitHub仓库在这里: https://github.com/AlphaPixel/SlugHorn/ 项目网站在这里: https://slughorn.io/ 该网站链接到GitHub仓库、用户指南以及Python和C++示例。还有一份正在进行的WhatsNext文件,列出了我们正在考虑的下一步方向:https://slughorn.io/WhatsNext.pdf 当前的导入后端 Slughorn当前支持几种输入来源:FreeType、NanoSVG(包括路径和渐变)、Skia路径、Cairo路径、Blend2D路径。这些后端的完整性各不相同。在这个阶段,这是可以预期的。FreeType后端是最成熟的。它可以处理COLRv0和COLRv1表情符号内容,并且是我们在验证核心数据模型时最依赖的后端。NanoSVG支持已经非常适合导入SVG路径、变换和渐变。笔划和文本是可能的,但我们尚未在这方面投入时间。Blend2D、Cairo和Skia路径目前功能较为基础。它们对于将路径数据转换为Slughorn内容非常有用,但尚未暴露这些库能表达的每个特性。我们希望在核心Slughorn部分稳定后,这些后端能够逐渐完善。 可选依赖关系 Slughorn核心构建不需要第三方依赖,但某些功能会使用可选组件:NanoSVG作为子模块,MSDF支持作为子模块,pybind11作为子模块,序列化和glTF支持作为子模块,Cairo、Blend2D和Skia导入支持(在外部可用时),Cairo、Blend2D和Skia不会被作为子模块。这是故意的。由于这些库足够大且系统特定,我们不希望假装每个构建环境都有一个干净的依赖关系。 Slughorn本身并不是一个生产渲染器 Slughorn并不是一个渲染库。它并不试图主宰你的渲染器、场景图、交换链、相机系统、材质系统或UI工具包。它的工作是作为输入和适配层。它为其他系统提供Slug兼容或Slug相邻的数据,可以在它们自己的GPU管道中渲染。这是有目的的和有意的。我们并不是试图替代OpenSceneGraph、VulkanSceneGraph、bgfx、Unreal、Unity、ImGui、Qt或自定义渲染器。我们希望Slughorn成为这些系统可以使用的东西。目前,查看渲染输出的功能最全的方式是osgSlug:https://github.com/AlphaPixel/osgSlug OpenSceneGraph一直是我们的快速测试平台,因为我们非常熟悉它。虽然OSG不是必需的。Slughorn还包括一个纯OpenGL演示,展示了如何在没有完整场景图的情况下集成该库。你不需要OpenSceneGraph,但你确实需要某种渲染器来处理所有的数据和着色器并执行它们。 为什么选择矢量图形? Slug是为文本设计的,已经非常有用。GPU渲染的字形曲线在许多情况下比纹理纹理图集、SDFs、MSDFs或其他近似技术更合适,尤其是在相机控制不严的情况下。但字形也是矢量图形。字形是一组曲线。SVG路径是一组曲线。图标形状是一组曲线。HUD元素通常是一组曲线。许多地图图层是一组曲线。我们在技术可视化中使用的许多图形不属于基本的光栅图像,它们经常被强行转化为光栅图像,因为GPU没有“Be

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡