홈으로 돌아가기

GPU 폰트 렌더링 Slug: 동적 팽창 및 MIT 라이선스

베지어 곡선에서 GPU 폰트 렌더링을 위한 Slug 알고리즘에 핵심 개선사항 — 동적 팽창이 적용되어 폴리곤 확장을 자동 최적화합니다. 코드 진화와 구시대 최적화 제거 후 해당 방법의 특허가 MIT 라이선스 하에 공개되어 프로젝트에서 자유롭게 사용할 수 있습니다.

Slug: 동적 팽창을 사용한 GPU 폰트 렌더링 — 이제 MIT 하에
Advertisement 728x90

# Slug를 활용한 GPU 폰트 렌더링: 동적 팽창과 MIT 라이선스 공개

2016년에 개발된 Slug 알고리즘은 베지어 곡선에서 텍스처 아틀라스 없이 폰트와 벡터 그래픽을 GPU에서 직접 렌더링할 수 있게 합니다. 지난 10년간 주요 업그레이드인 동적 팽창으로 진화했으며, 이제 특허가 MIT 라이선스로 무료 공개되어 누구나 자유롭게 사용할 수 있습니다.

Slug 알고리즘의 진화

Slug는 안정적이고 빠르며 고품질의 실시간 텍스트 렌더링이라는 도전을 해결합니다. 안정성은 누락 픽셀이나 아티팩트 없이, 성능은 2016년 콘솔에서도 FPS를 안정적으로 유지하며, 품질은 모든 크기와 시각에서 부드러운 곡선과 선명한 가장자리를 제공합니다.

2017년 JCGT 저널에 발표된 이후 코드가 여러 번 개선되었습니다:

Google AdInline article slot
  • 대형 글리프 속도를 높였던 스트라이프 분할 최적화를 제거했습니다. 이는 셰이더 발산과 데이터 양 2배 증가를 유발했기 때문입니다.
  • 적응형 슈퍼샘플링을 삭제했습니다. 효과는 읽기 어려운 작은 텍스트에서만 나타났고, 팽창으로 작은 크기의 앨리어싱을 효과적으로 처리할 수 있습니다.
  • 다색 이모지 렌더링을 전면 개편했습니다. 픽셀 셰이더 루프를 독립 글리프별 바운딩 폴리곤으로 교체해 코드 단순화와 성능 향상을 이뤘습니다.

이러한 변경으로 픽셀 셰이더가 간소화되고 데이터 사용량이 줄며 전체 렌더링 효율이 크게 향상되었습니다.

동적 팽창: 자동 최적화

동적 팽창 이전에는 사용자가 글리프 바운딩 폴리곤 확장을 위한 고정 오프셋을 수동으로 설정해야 했습니다. 이로 인해 작은 크기에서는 앨리어싱 아티팩트가 발생하고 큰 크기에서는 GPU 자원이 낭비되었습니다. 동적 팽창은 모델-뷰-투영(MVP) 행렬과 뷰포트 크기를 기반으로 버텍스 셰이더에서 최적 오프셋을 자동 계산해 이 문제를 모두 해결합니다.

이 계산은 부분적으로 덮인 픽셀 중심이 폴리곤 내부에 정확히 위치하도록 하여 라스터화가 제대로 이뤄지게 하고, 불필요한 채우기를 최소화합니다. 뷰포트 공간에서 0.5픽셀 팽창을 기반으로 한 공식은 이차방정식으로 풀립니다:

Google AdInline article slot
d = (s³t + s²√(u² + v²)) / (u² + v² - s²t²)

여기서 s = m₃₀p_x + m₃₁p_y + m₃₃, t = m₃₀n̂_x + m₃₁n̂_y, uv는 MVP 파라미터와 법선에서 유도된 도함수입니다. "+" 기호는 단위 법선을 따라 바깥쪽 오프셋을 나타냅니다.

원본 글리프 크기를 유지하기 위해 mipmapped 표면의 샘플링 좌표를 역 2×2 야코비안 행렬로 조정하여 오프셋을 오브젝트 공간으로 변환합니다.

특허 공개와 라이선싱

2019년에 저자가 Slug 알고리즘에 특허를 출원했으나, 이제 MIT 라이선스로 무제한 사용이 가능합니다. 개발자들은 법적 제약 없이 프로젝트에 통합할 수 있습니다. 이미 Activision, Adobe, Ubisoft 같은 기업이 비디오 게임, 과학 시각화, CAD 등에 라이선스해 사용하며 실전 가치를 입증했습니다.

Google AdInline article slot

주요 요약

  • Slug는 베지어 곡선에서 GPU로 폰트와 벡터 그래픽을 직접 렌더링해 안정성, 속도, 최고 품질을 제공합니다.
  • 동적 팽창은 바운딩 폴리곤 확장을 자동 최적화해 아티팩트와 자원 낭비를 없앱니다.
  • 알고리즘 진화: 스트라이프 분할과 슈퍼샘플링 제거, 이모지 렌더링 간소화.
  • Slug 특허가 MIT 라이선스로 상용 및 오픈소스 프로젝트에서 무료 사용 가능.
  • 게임, 과학 시각화, CAD 등에서 검증된 기술입니다.

— Editorial Team

Advertisement 728x90

다음 읽기