Тип работы:
Предмет:
Язык работы:


Инфраструктура для публикации шрифтов и улучшение рендеринга sdf шрифтов на мобильных устройствах

Работа №144995

Тип работы

Дипломные работы, ВКР

Предмет

математика

Объем работы20
Год сдачи2024
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
18
Не подходит работа?

Узнай цену на написание


Глава 1. Введение 2
Глава 2. Постановка задачи 3
Глава 3. Обзор предметной области 4
3.1. Способы рендеринга текстов 4
3.2. Рендеринг текста в технике sdf 6
Глава 4. Основной результат 11
4.1. Инструмент для отладки данных 11
4.2. Результаты наблюдений 14
4.3. Инфраструктура 16
Глава 5. Заключение 17
Список литературы 19
Приложения 20

Данная работа появилась в связи с тем, что в «Яндекс.Картах» долгое время были недостаточно качественные подписи — буквы были выщерблен­ные; не выравнивались; было заметно, что некоторые буквы выскакивают из слов. На всех клиентах (мобильные устройства, Web карты) использовались sdf шрифты вместо каноничных ttf шрифтов — для экономии времени рен­деринга текстов. Только в растровом режиме были ttf шрифты, но растровый режим является запасным: пока рендерится векторный или в случае его отка­за, — поэтому качество работы именно с sdf шрифтами является ключевым, соответственно появилась потребность разобраться, из-за чего тексты выгля­дели некачественно.
В процессе исследования проблемы было выяснено, что с рендерингом нет проблем — проблемы были с порождением глифов (текстур символов). Проблема специфичная — без инструмента для визуализации отладить про­блемы сложно, сырые данные не выразительны.
В данной работе рассматривается каким образом были исправлены про­блемы рендеринга текста sdf шрифтами в «Яндекс.Картах» и как для этой цели был создан инструмент отладки данных — sdf глифов, — названный fontograph. Так как приоритетным направлением являются мобильные устрой­ства, то в теме заявлены именно мобильные устройства, но по причине, озву­ченной ранее, проделанная работа улучшает тексты и в Web картах. Также рассматриваются результаты связанной задачи по улучшению внутренней ин­фраструктуры без подробностей из-за ограничений, связанных с политикой о неразглашении ООО «Яндекс.Технологии».
Глава 2. Постановка задачи
Имеется код рендеринга подписей на карте на мобильных устройствах, который а) может быть использован в целях тестирования только с помо­щью создания сложного стенда, который долго поднимать — и хотелось бы иметь инструмент, который позволит ускорить обратную связь от связанных изменений; б) выделить в библиотеку, которой можно было бы пользоваться на ведущих операционных систем для компьютеров (MacOS/Linux/Windows), можно и нужно, но сделать это крайне непросто и небыстро.
Изменения этого кода ведут к обновлению приложения карт и навигато­ра у клиентов-людей, которые происходят редко и нежелательны в контексте улучшения рендеринга подписей. Изменения формата данных влекут изме­нения кода клиентов, соответственно они также нежелательны.
Также в процессе поиска подходящего инструмента для отладки данных было выявлено, что на рынке есть либо бесплатные инструменты практиче­ски без функционала, либо платные инструменты и зачастую с избыточным функционалом.
Цель: Требуется добиться значительного улучшения подписей на карте без значительного изменения кода рендеринга на клиенте и формата данных — засчет улучшения порождения sdf глифов на сервере. Также требуется собрать воедино разрозненную структуру менеджмента шрифтовых ресурсов и централизовать менеджмент процессов с их участием.
...

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Итак, успешно была достигнута поставленная цель: Как видно на рисунке 10, итоговый вариант очень похож на эталонный, из-за чего можно утверждать о значительном улучшении рендеринга подпи­сей.
Был создан инструмент, которого не хватало на рынке — бесплатный и с полезным функционалом, о чем можно утверждать по ошибкам, которые он помог выявить. Этим инструментом продолжат пользоваться в компании для получения быстрой обратной связи от дальнейших изменений в порожде­нии глифов, если подключить к инструменту библиотеку osmesa из mesa3d, которая позволяет создавать контекст рендеринга без использования видео­карты — это обратную связь можно будет начать получать автоматически, в превью пулл реквеста, эти картинки будут рендерить сервера, к которым не подключены видеокарты.
Также видится в дальнейшем, что можно подключить просмотр и msdf глифов, также есть deep-sdf техника, которую тоже можно подключить. Также можно добавить возможность подключения фабрики глифов, как это было сделано для внутренней версии fontograph и внутренней фабрики.
В дальнейшем можно пробовать перевести рендеринг на использование msdf глифов.
Можно поменять побуквенный рендеринг на построчный - и добавить возможность рендерить многострочные тексты. Это изменение должно уско­рить fontograph и он будет еще быстрее давать обратную связь.
Наконец, в fontograph можно добавлять новых настроек — и делать это может не только автор, но и другие, потому что инструмент был выложен в открытый доступ.


[1] https://www.iso.org/obp/ui/en/#iso:std:iso-iec:14882:ed-6: v1:en — Стандарт языка С++20.
[2] https://www.khronos.org/opengl/wiki/OpenGL_Specification — OpenGL спецификация.
[3] Pottmann, H.; Hofer, M.: Geometry of the squared distance function to curves and surfaces. In H.C.Hege; K. Polthier, eds., Visualization and Mathematics III, 221-242. Springer Berlin Heidelberg, Berlin,Heidelberg, 2003. ISBN 978­3-662-05105-4.
[4] Yamaguchi, F.: Curves and Surfaces in Computer Aided Geometric Design. Springer-Verlag, Berlin,Heidelberg, 1988. ISBN 0387174494.
[5] Green, C.: Improved alpha-tested magnification for vector textures and special effects. In ACM SIG-GRAPH 2007 Courses, SIGGRAPH ’07, 9-18. ACM, New York, NY, USA, 2007. ISBN 978-1-4503-1823-5. http://doi.org/10. 1145/1281500.1281665.
[6] Viktor Chlumsky. Shape Decomposition for Multi-channel Distance Fields, 2015.
[7] https://freetype.org/freetype2/docs/glyphs/glyphs-3.html — Метрики шрифтов, стандарт FreeType.
[8] https://freetype.org/freetype2/docs/documentation.html - FreeType документация.
[9] https://libgdx.com/wiki/graphics/2d/fonts/ distance-field-fonts — libgdx, рендеринг и кастомизация с ис­пользованием sdf текстур.
[10] https://harfbuzz.github.io/ — HarfBuzz документация.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ