기타 Hacker News · 6일 전

폰트 렌더링이 이렇게 빡센 거였음? 비트맵에서 Slug까지 GPU 텍스트 렌더링 정리

핵심 요약
  • GPU에서 글자를 임의의 크기와 3D 각도로 깨짐 없이 실시간 렌더링하는 것은 오랜 기술적 난제였습니다.
  • 기존 비트맵 텍스처 아틀라스와 SDF·MSDF 방식은 한글/한자 등 글리프 수가 방대한 언어에서 메모리 낭비나 모서리 뭉개짐 등의 한계가 있었습니다.
  • 아틀라스 없이 벡터 외곽선을 직접 렌더링하는 'Slug' 기술의 특허가 최근 퍼블릭 도메인으로 공개되면서 누구나 제약 없이 최신 렌더링을 구현할 수 있게 되었습니다.
요약 글꼴을 화면에 그리는 작업은 겉보기엔 단순해 보이지만, GPU 상에서 글리프(문자 외곽선)를 임의의 크기와 3D 회전 변환 속에서도 깨짐 없이 실시간으로 그려내는 일은 컴퓨터 그래픽스 분야의 오랜 난제 중 하나였습니다. 전통적인 방식은 글자를 특정 해상도의 비트맵으로 미리 구워 텍스처 아틀라스에 넣은 뒤 사각형 폴리곤에 입혀 출력하는 '텍스처 아틀라스' 방식이었습니다. 하지만 이 방식은 글자를 확대하면 픽셀이 뭉개지거나 흐려지고, 축소하면 왜곡이 생기며, 특히 한글이나 한자처럼 글리프가 수만 개에 달하는 CJK 언어권에서는 필요한 모든 글리프를 미리 구워두느라 엄청난 메모리가 낭비되는 치명적인 한계가 있었습니다. 이에 밸브(Valve)의 크리스 그린은 2007년 경계면까지의 거리를 기록해 셰이더에서 보간하는 'SDF(부호화 거리 필드)' 방식을 선보였습니다. 작은 해상도 텍스처로도 깔끔한 외곽선과 안티에일리어싱을 얻을 수 있어 게임 HUD 등의 표준으로 자리 잡았으나, 뾰족한 모서리가 둥글게 뭉개지는 태생적 결함이 있었습니다. 이후 3개 채널(RGB)을 활용해 모서리를 보존하는 'MSDF' 방식이 개발되어 품질을 대폭 끌어올렸지만, 여전히 사전에 텍스처를 구워내야 한다는 아틀라스 방식의 근본적 제약(메모리 부담 및 동적 텍스트 한계)은 벗어나지 못했습니다. 그러던 중 에릭 렝겔(Eric Lengyel)이 2017년 제안한 '슬러그(Slug)' 알고리즘은 텍스처 아틀라스를 완전히 배제하고 프래그먼트 셰이더에서 벡터 외곽선 데이터를 직접 계산해 글자를 렌더링하는 혁신을 이뤄냈습니다. 렝겔은 2019년 이 기술을 특허 등록했으나 2026년 3월 해당 특허를 퍼블릭 도메인으로 기증하여 누구나 자유롭게 쓸 수 있게 풀었습니다. 본 아티클은 이러한 GPU 텍스트 렌더링 기술의 진화 흐름과 슬러그 기술의 오픈소스 구현체(Slughorn) 개발 배경을 상세히 짚고 있습니다.
Sponsored · 광고