среда, 2 мая 2012 г.



Всем доброго вечера.
Пока что разработка версии 0.4 идет полным ходом. Порой меня даже посещают мысли означить выход 0.4 более значимо и окрестить его, скажем, 1.0 :)
Темой для поста сегодня стала реализация обещанных в прошлом псевдовекторных шрифтов на основе карт дистанций.



Подобные текстуры выдает сейчас новый генератор шрифтов.
Первой мыслью была замена старой реализации шрифтов на новую, но поковырявшись я нашел несколько недостатков. Одним из них является невозможность работать не с TrueType шрифтами. Хотя, плюсы, конечно перевешивают. 


Антиалиасинг накладывается уже после отрисовки шрифта, точнее во время, что, собственно, позволяет делать его кладким, или делать жирнее, но еще плавнее, чем обычно.
Не обходится и без эффектов, например обводки.


К слову сказать. Масштабирование на скриншотах ровно столько, сколько написано на цифре. Исходная текстура 512х512 со всеми 256 символами шрифта.

Старый генератор шрифтов останется, так как им можно генерировать почти все шрифты, в отличие от этого. Тут круг уже. Однако, эта версия шрифтов на первое время получит больше вкусностей и всяких слюноотделительных рюшечек, кроме тех, что указаны выше. Шрифты новым генератором делаются с учетом всех сдвигов и выравниваний, так что уже нигде буковка не будет обрезана, или вылазить за пределы своего паттерна. Шрифты получат (для TTF шрифтов, которые имеют) поддержку корректировки с помощью индивидуальных кернинговых пар. Кроме означенных выше эффектов будет доступен также эффект свечения, тени и вдавленности шрифта. Не исключаю, что не сразу.
Интерфейс в самом quad останется прежнем IQuadFont, по прежнему будет грузить 2 файла, но работать с новыми будет иначе, уже по новой схеме.

5 комментариев:

  1. Зачётно. Теперь рассказывай как генерируешь DF)

    ОтветитьУдалить
  2. Брутфорс по расстоянию. Начинаю от ближайших точек, отхожу все дальше. В генераторе выставляется радиус и пошло поехало. Дальше все как у всех, я думаю :).

    ОтветитьУдалить
  3. Странно, тогда не пойму как у тебя такие плавные красивые градиетики получаются в DF и хорошие контуры у букв в результате. Я беру в 16 или 64 раза большую текстуру чем результатную и на ней строю DF. Мало того, что брутфорсом это очень долго. Так эта зараза может занимать огромное количество памяти и приложение крашилось.

    ОтветитьУдалить
  4. Я делаю уменьшение в 6-16 раз, не более. К тому же даже если в 64 раза больше, не вижу причин почему не должно хватать памяти. Изначальное изображение битовое, значит в одном байте можно уложить аж 8 пикселей. Тоесть даже при 10000х10000 исходном изображении это будет только 12Мб памяти.

    ОтветитьУдалить
  5. Проблемы с памятью были до того, как я стал использовать битовые изображения)

    ОтветитьУдалить