Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
WoL
Вчера, 15:33
 Shirson
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
RES - Движок для пик…
27.09.2023
 rimush
177 - One Button Str…
20.09.2023
 VoroneTZ
JS 13k contest
13.09.2023
 Mefistofel
184 - Arcade II
14.08.2023
 tiger1025
184 - ?
14.07.2023
 Kaps
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 1,789
новичок: NickName
Обсуждение «Юникодовая генерилка шрифтов.»
_zlos_
Avatar пользователя

Опубликовано 12.02.2007 11:52 (17 лет назад)    #
http://www.gamedev.ru/download/?id=4997
История появления
В один прекрасный момент мне понадобилось вставить в игру шрифты. Желания писать свой генератор шрифтов не было, и я посмотрел, что есть в свободном наличии. Требования были простые:
1. Генерация юникодовых шрифтов (это самое главное).
2. Символы не одинаковой ширины (многие шрифтогенерилки грешат этим, как ни странно).
3. Поддержка кернинга (без него надписи зачастую некрасиво смотрятся)
4. Экспорт в xml (лень делать свой или адаптировать имеющийся парзер).
Первые 3 требования были обязательными, последнее требование опционально.
И я среди многочисленных фонторисовалок не нашел ни одной, что удовлетворяла бы этим требованиям. В основном используются в качестве образца для подражания фантастичесие в совей убогости «шрифты NeHe», которые даже не держат юникод! Или, что вообще преступление, генерят по целой текстуре на каждую буковку! Причем такое безобразие творится и в готовых, неплохо себя зарекомендовавших, движках вроде PopCap и HGE (в первом, правда, все более-менее со шрифтами в порядке, если не считать отсутствия юникода, да и общей убогости кода)
Как результат был мною взят FreeType и сооружена программка, которую я и представляю.

Darth’s FontGen v. 0.1
Программа работает с xml-описаниями требуемых шрифтов (туда помещается название, путь до исходного файла, размер и требуемые диапазоны символов). В одном файле может быть произвольное число описаний, программа работает с произвольным числом файлов, указываемых в командной строке.
На выходе генерируется файл [имя_шрифта].jpg с grayscale-картинкой с шрифтом и [имя_шрифта].xml с предельно тупым форматом, разобраться с которым труда не составляет. Содержит описания всех символов, базовое смещение от верхнего левого угла, смещение для базовых координат до следующего символа, высота, ширина и текстурные координаты в готовом к употреблению виде. Если шрифт содержит информацию о кернинге, то после раздела с символами будут все варианты кернинга – левый символ, правый символ и значение, насколько нужно продвинуть указатель.
Рисуется примерно так (псевдокод)
Vec2 pen;
Foreach (glyph in text)
{
DrawGlyph(glyph, pen + glyph.GetBase());
pen += glyph.GetAdvance();
pen += GetKerning(prevGlyph, glyph);
prevGlyph = glyph;
}

В комплект входит программа и пример использования – 2 шрифта с описанием. Разобраться с ней будет несложно, я надеюсь.
Запускается просто:
fontgen test.xml – и через секунду число файлов в папке увеличится.
Если вы нашли программу полезной – мне будет очень интересно узнать об этом.
Ну и обычная критика приветствуется.

редакция от _zlos_, 12.02.2007 11:53

Darthman
Древний организм
Avatar пользователя

Опубликовано 13.02.2007 20:24 (17 лет назад)    #
Приятно, что программу в мою честь называют :)
beisik
Avatar пользователя

Опубликовано 13.02.2007 20:44 (17 лет назад)    #
Если автору интересно почему нету отзывов, то отвечу: здесь большинство обитателей delphi'сты, а не сишники... да и скажи мне не образованному что такое кернинг! {:
grouzdev
Администратор
Avatar пользователя

Опубликовано 13.02.2007 21:08 (17 лет назад)    #
beisik, расстояние между буквами. ты ж в 3dsm рисовал, обязан знать)

ps гг, bdsm))
_zlos_
Avatar пользователя

Опубликовано 14.02.2007 07:48 (17 лет назад)    #
2Darthman
Не в твою, у меня один из ников - Darth
2Beisik
Распарзить XML можно чем угодно, как и прочитать jpeg.
Кернинг - когда буковка немного "наезжает" на другую, чобы лучше выглядеть/ (VA паример)
grouzdev
Администратор
Avatar пользователя

Опубликовано 14.02.2007 15:29 (17 лет назад)    #
один из ников - Darth

кул) теперь у нас два Дарта, два ОСокиных. тов. Груздев-2, вы где?)))

Кернинг - когда буковка немного "наезжает" на другую

..или наоборот отъезжает от нее) так что это именно расстояние)
Makar Borisowitch
Avatar пользователя

Опубликовано 13.11.2007 20:41 (16 лет назад)    #
Эта, а можно прогу ещё куда-нить залить? И ваще, хотелось бы получить консультацию по всему этому делу.
А-то возникла острая необходимость прикрутить к игре японский язык - теперь вот маюсь.
Двиган HGE.
Заранее спасибо.
Anton Andreevitch
Avatar пользователя

Опубликовано 13.11.2007 20:58 (16 лет назад)    #
И еще два Дрона :)
а Антона тоже два %)
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 181 - Pixel Craft 128
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

25,369,277 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.