Ru-Board.club
← Вернуться в раздел «Программы»

» Помогите понять данные к шрифту

Автор: AleksTrin
Дата сообщения: 28.05.2009 16:19
Люди помогите!
Есть шрифты и данные к ним, не могу понять как заполнить эти данные!

пример:

Цитата:
XMLB FONT_TABLE {
ascender = 27 ;
descender = 8 ;
height = 39 ;
pointsize = 36 ;
glyph {
baseline = 0 ;
height = 0 ;
horizadvance = 0 ;
horizoffset = 0 ;
num = 0 ;
s = 0 ;
s2 = 0 ;
t = 0 ;
t2 = 0 ;
width = 0 ;
}


Вот ссылка на полный файл данных + сам шрифт в bmp файле с альфа каналом
Скачать (53кбайт)
Автор: akaGM
Дата сообщения: 28.05.2009 18:43
AleksTrin
это формат шрифтов игрушки Jedi Academy и Кваки, как оказалось...


Цитата:
как заполнить эти данные

да никак... если нет своего редактора в сорсах этой игры

на фиг оно тебе?

спроси здесь
http://forum.ru-board.com/topic.cgi?forum=33&topic=0971#1
Автор: AleksTrin
Дата сообщения: 28.05.2009 18:48
akaGM


Цитата:
на фиг оно тебе?

Да хочу шрифт переделать для игры!



Цитата:
да никак... если нет своего редактора в сорсах этой игры


Но люди как-то переделали Marvel Ultimate Alliance на сайте zoneofgames.
Автор: akaGM
Дата сообщения: 28.05.2009 18:55
AleksTrin

Код: typedef struct
{
short width; // number of pixels wide
short height; // number of scan lines
short horizAdvance; // number of pixels to advance to the next char
short horizOffset; // x offset into space to render glyph
int baseline; // y offset
float s; // x start tex coord
float t; // y start tex coord
float s2; // x end tex coord
float t2; // y end tex coord
} glyphInfo_t;


// this file corresponds 1:1 with the "*.fontdat" files, so don't change it unless you're going to
// recompile the fontgen util and regenerate all the fonts!
//
typedef struct dfontdat_s
{
glyphInfo_t mGlyphs[GLYPH_COUNT];

short mPointSize;
short mHeight; // max height of font
short mAscender;
short mDescender;
} dfontdat_t;
Автор: AleksTrin
Дата сообщения: 28.05.2009 19:08
akaGM

Так это и я нашел, тока фиг че понял, там на английском!

Добавлено:
akaGM

А чего искать?
Автор: akaGM
Дата сообщения: 28.05.2009 19:27
AleksTrin
fontgen util
т.е. как раз редактор/генератор фонтов этого формата...
Автор: AleksTrin
Дата сообщения: 28.05.2009 19:32
akaGM

Понятно, спасибо!
Будем искать!

Добавлено:

По этой ссылке нашел прогу FontGen:
http://download.ru/get/0000/4101/fg.rar

Но в ней генерируются только BMP файлы, а данных там нет никаких!


Добавлено:

Вот другой fontgen, но здесь тож не понятно

http://dreamsware.info/fontgen/FontGenTrial.zip
Автор: AleksTrin
Дата сообщения: 30.05.2009 18:32
Фрагмент буквы:


Полный файл:



glyph {
baseline = 53 ;
height = 38 ; - (цифра 2 на рисунке) высота символа в пикселях
horizadvance = 25 ; - (цифра 3 на рисунке) число пикселей от начала символа до следующего символа
horizoffset = -4 ;
num = 192 ; - номер символа, в данном случае кириллическая заглавная буква "А"
s = 0.767578 ;
s2 = 0.814453 ;
t = 0.351563 ;
t2 = 0.500000 ;
width = 24 ; - (цифра 1 на рисунке) ширина символа в пикселях
}

А вот что остальное, что-то не понятно!
Может кто-нибудь подскажет?
Автор: akaGM
Дата сообщения: 30.05.2009 20:14
AleksTrin

Код:
short horizOffset; // x offset into space to render glyph
Автор: AleksTrin
Дата сообщения: 30.05.2009 22:46
akaGM


Цитата:
а на это наплюй, это, наверное, координаты для натягивания текстуры на шрифт


Не возможно, потому что в игре как раз текстуры на шрифт и накладываются


Цитата:
это смещение (базовая линия символа) вниз в ячейке


а тогда цифра 53, что означает, откуда ее считать?


Цитата:
лучше б этот топ в "графику" поместить, там быстро всё раскрутят...


Я там спрашивал, где шрифты, а меня наоборот сюда послали!


Цитата:
начало отрисовки символа, видишь на твоём рисунке первая точка "А" сдвинута на 4 пикселя вправо относительно основания, а "-" стоит из-за того, что часть символа будет ещё рисоваться левее


А как быть с буквой "Б", ведь у нее тож смещение "-4" написано, хотя на букве этого не видно смещения, как на "А"?


Цитата:
и рисунок свой сожми на фиг, смотреть невозможно...


Рисунок исправил!
Автор: akaGM
Дата сообщения: 31.05.2009 14:42
AleksTrin
базовую линию надо считать зная структуру
short mPointSize;
short mHeight; // max height of font
short mAscender;
short mDescender;

на, почитай пока...
http://typo.mania.ru/glossary/index-ru.htm
http://typo.mania.ru/glossary/appnd02.htm

http://www.transcriber.ru/etudesrus/apx_typo_dictionary.htm
Автор: AleksTrin
Дата сообщения: 31.05.2009 14:50
akaGM

Да про то где находится базовая линия, я знаю, она находится внизу основания символа, и про это везде написано!

Но нигде не написано откуда ее вычислять?

И что это тада за 53?
Автор: akaGM
Дата сообщения: 31.05.2009 14:56
AleksTrin
говорю ж:
надо знать ещё три числа:
short mHeight; // max height of font
short mAscender;
short mDescender;
charheight = 38
baseline=53 знаем

будем считать...

а если честно, то ХЗ для самопальных фонтов и их растрового воплощения
Автор: AleksTrin
Дата сообщения: 31.05.2009 15:02
ascender = 53 ;
descender = 8 ;
height = 71 ;
pointsize = 66 ;

Добавлено:
akaGM
И как вычислить это все?
Автор: akaGM
Дата сообщения: 31.05.2009 15:06
AleksTrin

Цитата:
Но нигде не написано откуда ее вычислять?

вообще, она не вычисляется, а задаётся
от 0 в ячейке font_width * font_height


Цитата:
И как вычислить это все?

никак...
это рисуемые вещи только pointsize и общие размеры шрифта задаются
Автор: AleksTrin
Дата сообщения: 16.07.2009 20:15
Вручную очень долго получается, плохо что нет проги!

Страницы: 1

Предыдущая тема: Outlook Express ошибка 421


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.