Slug 알고리듬 10주년

1 week ago 6

  • GPU에서 Bézier 곡선 기반 폰트 렌더링을 수행하는 Slug 알고리듬이 개발된 지 10년이 되었음
  • 이 기술은 텍스처 없이 직접 벡터 데이터를 렌더링하며, 게임·CAD·영상 편집·의료 장비 등 다양한 산업에서 사용됨
  • 최근 버전에서는 band split 최적화와 supersampling 제거, 이모지 렌더링 방식 단순화 등으로 성능과 코드 효율을 개선
  • 가장 큰 변화는 동적 팽창(dynamic dilation) 기능으로, 글리프 크기와 시점에 따라 자동으로 최적 경계 확장을 계산함
  • Slug 알고리듬의 특허가 공공 도메인으로 완전 해제되었으며, 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년간의 발전을 통해 성능, 단순성, 품질을 모두 향상
  • 특허 해제로 인해 산업 전반에서 자유로운 채택과 확장 가능성 확보

Read Entire Article