# Slug 알고리듬 10주년

> Clean Markdown view of GeekNews topic #27610. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27610](https://news.hada.io/topic?id=27610)
- GeekNews Markdown: [https://news.hada.io/topic/27610.md](https://news.hada.io/topic/27610.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-18T14:32:41+09:00
- Updated: 2026-03-18T14:32:41+09:00
- Original source: [terathon.com](https://terathon.com/blog/decade-slug.html)
- Points: 9
- Comments: 2

## Summary

GPU에서 **벡터 데이터를 직접 렌더링**하는 Slug 알고리듬이 10주년을 맞아 특허를 완전히 해제했습니다. 2026년 3월부로 공공 도메인에 편입되어 누구나 자유롭게 구현할 수 있으며, GitHub의 **MIT 라이선스 셰이더 코드**를 통해 즉시 활용 가능합니다. 최신 버전은 **동적 팽창(dynamic dilation)** 기능으로 글리프 크기와 시점에 따라 자동으로 경계를 조정해, 고해상도 환경에서도 균일한 품질을 유지합니다.

## Topic Body

- GPU에서 **Bézier 곡선 기반 폰트 렌더링**을 수행하는 Slug 알고리듬은 **텍스처 없이 직접 벡터 데이터를 렌더링**하며, 게임·CAD·영상 편집·의료 장비 등 다양한 산업에서 사용됨  
- 독점권을 2026/3/17부로 포기하여 **특허가 공공 도메인으로 완전 해제**되어 누구나 자유롭게 사용가능해졌음  
- 최근 버전에서는 **band split 최적화와 supersampling 제거**, **이모지 렌더링 방식 단순화** 등으로 성능과 코드 효율을 개선  
- 가장 큰 변화는 **동적 팽창(dynamic dilation)** 기능으로, 글리프 크기와 시점에 따라 자동으로 최적 경계 확장을 계산함  
- MIT 라이선스로 공개된 **GitHub 레퍼런스 셰이더 코드**를 통해 누구나 자유롭게 구현 가능  
  
---  
  
### Slug 알고리듬의 개발과 확산  
- Slug 알고리듬은 2016년 가을에 개발되어 2017년 JCGT 논문으로 발표됨  
  - 이후 Slug Library 1.0이 상용화되어 Activision, Blizzard, Ubisoft, Adobe 등 주요 기업에 라이선스 제공  
  - 게임, 과학 시각화, CAD, 비디오 편집, 의료 장비, 플라네타리움 등 다양한 분야에서 사용됨  
- 원래는 **C4 Engine**의 고품질 텍스트 렌더링을 위해 개발되었으며, 이후 **Radical Pie 수식 편집기**에도 적용됨  
  - 수식, 괄호, 화살표 등 벡터 그래픽 요소를 고해상도로 표현  
  
### 렌더링 방식의 진화  
- Slug은 **사전 계산된 텍스처 없이 Bézier 곡선 데이터를 GPU에서 직접 렌더링**  
  - 부동소수점 오차에도 강건하며, 매끄러운 곡선과 날카로운 모서리를 유지  
- **band split 최적화**는 대형 글리프에서 속도 향상이 있었으나, 작은 글꼴에서는 성능 저하와 복잡성 증가로 제거됨  
  - 이로 인해 픽셀 셰이더 단순화 및 **band 데이터 텍스처 크기 절반 감소**  
- **adaptive supersampling**은 작은 글꼴의 앨리어싱 완화에 사용되었으나, 효과가 제한적이고 새로운 팽창 기법으로 대체되어 제거됨  
- **다중 색상 이모지 렌더링**은 각 레이어를 독립 글리프로 처리하는 방식으로 변경되어 성능 향상 및 코드 단순화 달성  
  
### 동적 팽창(Dynamic Dilation)  
- 기존에는 글리프 경계 확장을 **고정 거리로 수동 지정**해야 했음  
  - 작은 글꼴에서는 경계 손실, 큰 글꼴에서는 불필요한 공간 낭비 발생  
- 동적 팽창은 **버텍스 셰이더에서 자동 계산**되어, 각 글리프 렌더링 시 최적 확장 거리 결정  
  - **MVP 행렬과 뷰포트 크기**를 이용해 반 픽셀 단위로 경계 확장  
  - 시점 변화에 따라 각 버텍스마다 다른 팽창 거리 적용 가능  
- 수학적으로는 **뷰포트 공간에서 반 픽셀 확장 조건**을 만족하는 거리 *d*를 구하는 2차 방정식으로 유도  
  - 최종 해는 \(d = \frac{s^3t \pm s^2\sqrt{u^2 + v^2}}{u^2 + v^2 - s^2t^2}\) 형태  
  - 양의 부호를 선택해 외곽 방향으로 이동  
- 글리프 크기를 유지하기 위해 **em-space 좌표 보정**도 수행하며, 각 버텍스에 역 Jacobian 행렬을 저장  
  
### 특허 해제 및 공개 선언  
- Slug 알고리듬은 2019년 **미국 특허(US10373352B1)** 를 취득했으나, 2038년까지의 독점권을 **2026년 3월 17일부로 포기**  
  - USPTO에 **SB/43 양식 제출 및 수수료 납부**로 특허의 잔여 기간을 공식 포기  
- 이에 따라 누구나 Slug 알고리듬을 **자유롭게 구현 및 사용 가능**  
  - 상업적·비상업적 목적 모두 허용, 지식재산권 침해 우려 없음  
- 실제 구현 참고용으로 **GitHub 저장소(https://github.com/EricLengyel/Slug)** 공개  
  - **MIT 라이선스**로 제공되며, JCGT 논문보다 개선된 픽셀 셰이더와 **동적 팽창 포함 버텍스 셰이더** 포함  
  
### Slug의 의의  
- Slug은 **GPU 기반 벡터 폰트 렌더링의 대표적 구현체**로 자리잡음  
- 10년간의 발전을 통해 **성능, 단순성, 품질**을 모두 향상  
- 특허 해제로 인해 **산업 전반에서 자유로운 채택과 확장 가능성** 확보

## Comments



### Comment 53571

- Author: dalinaum
- Created: 2026-03-22T21:54:26+09:00
- Points: 1

너무 훌륭한 소식이네요.

### Comment 53287

- Author: neo
- Created: 2026-03-18T14:32:41+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47416736) 
- 정말 멋진 소식임. 예전에 이 **알고리즘의 우아함**에 감탄했지만, 특허 때문에 FOSS에서는 쓸 수 없어 아쉬웠음  
  이제 일정 기간 후 **공개 도메인으로 헌정**했다니 감사한 일임. 언젠가 터미널 에뮬레이터를 만들게 되면, 코드의 미학적 매력 때문에 이 알고리즘을 써보고 싶음
  - 작성자가 직접 밝히길, 2019년에 Slug 알고리즘 특허를 받았지만 2038년까지 독점권을 유지하는 건 너무 길다고 생각했음. 그래서 오늘부로 **Slug 특허를 영구히 공개 도메인에 헌정함**
  - 소프트웨어 특허가 **8년 정도만 유효**하다면 찬성할 만하다고 생각함
- 그의 최신 프로젝트는 [RadicalPie](https://radicalpie.com/)임  
  Windows 10/11용 **전문 수식 편집기**로, Slug를 렌더링 엔진으로 사용하며 가격은 60달러임. 아마도 FGED 책을 쓰는 데 이걸 활용하고 있을 것 같음
  - 25년 전이었다면 정말 반가웠을 것 같음. 하지만 요즘은 이런 작업을 Windows에서 하는 사람을 거의 못 봄  
    그래도 MathType의 훌륭한 대체재이고, **OLE 통합**으로 Word에 잘 삽입된다는 점은 인상적임
- 예전 직장에서 Slug를 사용했는데, 정말 **예술적으로 설계된 라이브러리**였음  
  소프트웨어 공학의 정점이라 생각함. 이를 공개 도메인으로 기부한 작성자에게 감사함
- Eric에게 감사함. 그의 접근법을 [Vello](https://github.com/linebender/vello) 같은 프로젝트와 비교하면 어떤 차이가 있을지 궁금함
- 복잡하면서도 유용한 소프트웨어를 만든 사람이 **정당한 보상**을 받는 이야기를 보는 게 너무 좋음  
  이런 사례가 더 많아졌으면 함
- 놀라운 소식임. Eric에게 감사함  
  참고로 Microsoft의 **Loop-Blinn 특허(입방 곡선용)** 도 곧 만료될 예정이라, 텍스트 렌더링 환경이 크게 바뀔 수도 있음
- 정말 멋짐. 예전에 Ruffle이 GPU 가속 벡터 그래픽을 비슷하게 구현할 수 있을까 궁금했었음  
  당시에는 곡선을 삼각형으로 근사하는 방식을 썼는데, 지금도 그런지 모르겠음
- 훌륭한 소식임. 요즘 하드웨어 속도를 생각하면, **Bezier 곡선에서 직접 글리프를 렌더링**하지 못할 이유가 없음  
  과거의 텍스처 아틀라스나 SDF 방식은 임시방편 같았고, 스케일이 달라지면 품질이 떨어졌음  
  Slug가 공개되면서 주요 라이브러리나 게임 엔진들이 더 **고품질 렌더링 방식**을 채택하길 바람
- 예전에 저자의 게임 엔진 **C4**로 작업했었는데, 벌써 20년 전임  
  아직도 이 분야에서 활발히 활동 중이라는 걸 몰랐음
- 혹시 **ShaderToy**에 올라왔는지 궁금함 😄
