Samber13 227 Опубликовано 1 Марта 2015 (изменено) Продолжу тему о шрифтах http://www.amk-team.ru/forum/index.php?showtopic=6458&p=902166 @FantomICW рассказал о списке доступных шрифтов и их регистрации. И упомянул о fonts.ltx Рассмотрим его получше. В этом файле список шрифтов и их параметров. В качестве примера рассмотрим секцию: [ui_font_arial_14] shader = hud\font texture = ui\ui_font_arial_14_1024 texture800 = ui\ui_font_arial_14_800 texture1600 = ui\ui_font_arial_14_1600 Параметр "shader", как не сложно догадаться назначает шейдер на шрифт. Подробней чуть позже. Параметр "texture" указывает на текстуру с этим самым шрифтом. Цифры в параметрах вида "texture800" означают разрешение монитора, при котором будет использована та или иная текстура. Текстуры с префиксами "_west","_cent" означают кодировки.По умолчанию во всех шрифтах используется шейдер "hud\font". Если мы попробуем поменять его, скажем на "hud\default", то получится нечто подобное:Связано это с особенностью текстур. Немного отвлечёмся. Попробовав открыть такую текстуру плагином nvidia для фотошопа, я получил нечто абсолютно бесформенное. Кроме квадрата Малевича, был альфа-канал, на котором не отчётливо можно было разобрать контуры некоторых символов. Сторонние вьюверы и редакторы показывали подобный неоднозначный результат. Но затратив немного времени и сил я разобрался с этим и перевёл этот 8-битный одноканальный файл в привычный DXT5.И так возвращаемся к шейдерам. Если на DXT5 текстуру шрифта назначить шейдер "hud\default", то она будет отображаться правильно. Цвет шрифта будет взят напрямую из RGB каналов текстуры, а не из назначенных параметров. Минусы такого шейдера очевидны, но если скажем, вам нужны чёрные контуры на символах или по вашей задумке буквы должны быть радужными, то это может, пригодится. Если же на DXT5 текстуру шрифта назначить шейдер "hud\font", то символы считываются с альфа-канала без ошибок, так же как и с оригинальной текстуры. RGB-каналы при этом не используются. Именно по этой причине разработчики сжали текстуры шрифтов.У каждой текстуры шрифта есть свой ".ini" файл, в котором, одна постоянная секция "symbol_coords". Не сложно догадаться, что здесь вписаны координаты каждого символа. И так же встречается секция "width_correction" - поправка по ширине.Надеюсь, что статья будет полезной. Добра и удачи в разработке Изменено 1 Марта 2015 пользователем Samber13 2 6 Калькулятор номера билда. Поделиться этим сообщением Ссылка на сообщение