Войти
ПроектыФорумУтилиты

[v 1.1] UBFG - Генератор растровых шрифтов (3 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 533 Следующая »
#30
22:23, 19 сен. 2011

Честно говоря, не сталкивался с таким методом рендеринга шрифтов


#31
23:29, 19 сен. 2011

susageP
distance field что ли?

P.S. Сам как раз реализовал недавно EDTAA алгоритм, который в публикации с исходным кодом прилагается =)

#32
23:33, 19 сен. 2011

И насколько быстрее это рендерится по сравнению с bitmap?

Для создания таких глифов можно применить алгоритм генерации этифх disrance filad на этапе растеризации шрифтов.

#33
23:49, 19 сен. 2011

Похоже что это первый на GD нормально оформленный проект с исходниками...

Из замечаний - UI не продуман, неочевидно что можно добавлять несколько шрифтов (и что их вообще нужно добавлять). Как минимум, я бы cahr list поместил под списком шрифтов, а update в самый низ, ибо на результат влияют все контролы в группе. И лицензию было бы неплохо в каждом файле указать, как обычно принято.

PS. Под FreeBSD собирается без правок и работает без проблем.

#34
23:53, 19 сен. 2011

flatz
> distance field что ли?
наверно...

RPG
там просто читается значение из текстуры и если больше 0.5 то белый, если больше 0.45 то красный бордюрчик.
но лучше со сглаживанием читать
грубо

  sum  = texture(sBase, tCord+delta*vec2( 0.5,-0.5) ).rgba;
  sum += texture(sBase, tCord+delta*vec2(-0.5,-0.5) ).rgba;
  sum += texture(sBase, tCord+delta*vec2(-0.5, 0.5) ).rgba;
  sum += texture(sBase, tCord+delta*vec2( 0.5, 0.5) ).rgba;
  l = sum*0.25;
  color0.r = clamp((l.r-0.55)/0.02,0.0,1.0);
  color0.g = 1.0-clamp((l.r-0.53)/0.02,0.0,1.0);
  color0.b = 0.0;
#35
0:00, 20 сен. 2011

> Из замечаний - UI не продуман, неочевидно что можно добавлять несколько шрифтов (и что их вообще нужно добавлять). Как минимум, я бы cahr list поместил под списком шрифтов, а update в самый низ, ибо на результат влияют все контролы в группе. И лицензию было бы неплохо в каждом файле указать, как обычно принято.
Я учту это. Не судите так строго - делал во-первых для себя а во вторых в чисто свободное время. Но насчет кнопки update вынужден согласиться - сам долго искал её)

> PS. Под FreeBSD собирается без правок и работает без проблем.
Это хорошо:) Но это больше заслуга QT и компилятора gcc, то есть не факт что например в VS соберется. Я нормальный сишный код движка (без ошибок) прогнал через VS и он нашел там стопицот ошибок:(

> там просто читается значение из текстуры и если больше 0.5 то белый, если больше 0.45 то красный бордюрчик.
> но лучше со сглаживанием читать
я так понимаю заблюреная текстура пропускается через шейдры и потом просто берется какой-то порог. Качество честно не поражает да и такие шейдры в любом случае затормозят процесс. один плюс - память бережёт если нужно очень крупный текст выводить.

Если вы предоставите качественный генератор distance field из картинки с буквой, его можно будет внедрить в процесс генерации текстуры.

#36
2:40, 20 сен. 2011

http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_Alpha… ification.pdf

#37
3:31, 20 сен. 2011

Это техника рендеринга - а как насчет алгоритма генерации таких изображений?

#38
11:22, 20 сен. 2011

RPG
> Это техника рендеринга - а как насчет алгоритма генерации таких изображений?
я делал в лоб. рендир в разрешение в 8 раз больше нужного.  потом брал пиксель и считал расстояние до всех пикселей находящихся на границе буквы( есть соседи другова цвета) и выбирал минимальное расстояние.
и так для каждого пикселя конечного изображения.

#39
11:41, 20 сен. 2011

susageP
Вы можете добавить этот алгоритм в программу - исходники открыты (см. нулевой пост). Если всё будет ок - я включу его в основную ветку.
Процессинг глифов можно добавить сразу после рендеринга: p.drawText(0,base,s.at(i)); в fontrender.cpp.

Я пока сам ею активно не занимаюсь.

#40
15:53, 20 сен. 2011

RPG
По-моему, distance field в Qt уже встроен давно, разве нет? Вот: http://labs.qt.nokia.com/2011/07/15/text-rendering-in-the-qml-scene-graph/

#41
16:00, 20 сен. 2011

flatz
> По-моему, distance field в Qt уже встроен давно, разве нет? Вот:
> http://labs.qt.nokia.com/2011/07/15/text-rendering-in-the-qml-scene-graph/
Причем, похоже в пятый

#42
16:19, 20 сен. 2011

RPG
Ну да, но ничего же не мешает взять код из репозитория =)

#43
19:35, 20 сен. 2011

каждый буратина делает себе свой генератор :) вот мой
Генератор шрифта | [v 1.1] UBFG - Генератор растровых шрифтов

#44
19:38, 20 сен. 2011

Это немного разные вещи... хотя прикрутить такую штуку на постпроцессинг было бы неплохо. Генератор открытый?

Страницы: 1 2 3 4 533 Следующая »
ПроектыФорумУтилиты