Как выбрать алгоритм рендеринга текста между SDF, MSDF, Slug, атласом текстур или Rive? Текст выглядит просто, пока вам не придется рисовать его самостоятельно. Буква — это набор контуров: замкнутые петли из прямых линий и кривых Безье, заполненные по правилу намотки. Рисование этого на CPU в растровое изображение решено. Рисование на GPU, четко, в любом размере, при любом 3D-преобразовании, пока текст меняется каждый кадр, — нет.
Большинство движков избегают сложной версии, заранее запекая глифы в текстуры. В 2017 году Эрик Ленгель опубликовал Slug, который рендерит глифы непосредственно из контуров во фрагментном шейдере, без атласа текстур и без тесселяции на кадр. Ленгель запатентовал его в 2019 году, а 17 марта 2026 года он передал этот патент в общественное достояние. Это руководство охватывает, как работает рендеринг текста на GPU, от растрового атласа до Slug.
Метод 1, атлас текстур, растеризует каждый глиф один раз в общую текстуру. Это быстро, но проблемы появляются при масштабировании: увеличьте за пределы запеченного размера, и глиф станет размытым. Каждый размер, который вы хотите четким, — это еще один атлас, а такие языки, как китайский, японский и корейский, вызывают катастрофу памяти. Метод 2, поля расстояний со знаком (SDF), хранит расстояние до ближайшего края. Поскольку расстояние плавно интерполируется, вы можете значительно увеличить небольшую текстуру SDF и получить чистый край. Долгое время это было стандартом для четкого текста интерфейса, но SDF по-прежнему является запеченной текстурой.