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

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

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

Страницы: 128 29 30 31 32 33 Следующая »
#450
10:33, 13 мая 2014

Последний месяц не занимался просто этим проектом - времени не так много.

> Например формат ktx

Не слышал о таком...

> Ещё можно сжать текстуру шрифта в DXT1 или в RGTC

Можно. Но сжимать в запатентованные форматы я не планирую. Это можно сделать отдельным проходом утилитами от nvidia.


#451
13:46, 13 мая 2014

RPG
> Но сжимать в запатентованные форматы я не планирую.
Какие ещё запатентованные? Это очень простые форматы, их умеет сжимать куча опенсорсных программ и библиотек.

RPG
> Не слышал о таком...
Он только полтора года назад появился вроде бы. Khronos texture.

#452
14:16, 13 мая 2014

gammaker
Мой мнение - "внешние" форматы нужно оставить на откуп специализированным утилитам. Мне в любом случае не хочется поддерживать комбайн, это просто утилита для упаковки атласов и она больше ничего не должна уметь делать. Форматы там вообще говоря для галочки, так как картинку можно переконвертировать во что угодно, да и формат fnt также при помощи awk можно преобразовать во что угодно.

Экспорт в DXT1 вообще говоря очень нетривиальная задача. Известные мне OpenSource реализации дают посредственный результат, да и собственно зачем всё это, когда тулза от nvidia даёт лучший результат в своём классе?

DXT1 для SDF нельзя использовать. Результаты ужасны. Да и там не такой большой объём текстуры, чтобы экономить.

Khronos texture скорее всего свободный, насколько я знаю, эта организация занимается стандартами. Это хорошо. Но вставлять его в программу не возьмусь - я этот формат не знаю и ни разу не пользовался. Патчи принимаются:) Если вы не хотите, чтобы патч висел месяцами, оформляйте Pull Reques в Git. Без этого очень сложно вставлять патчи.

#453
17:44, 13 мая 2014

RPG
> Мне в любом случае не хочется поддерживать комбайн, это просто утилита для
> упаковки атласов и она больше ничего не должна уметь делать.
А я как раз люблю комбайны, даже есть мысли самому сделать. Если конечно вы позволите использовать исходники UBFG. А то надоело, что есть сотни утилит, и чтобы получить один файл, нужно выбирать комбинацию из них и последовательно через них проводить, да ещё и с костылями.

RPG
> Мне в любом случае не хочется поддерживать комбайн, это просто утилита для
> упаковки атласов и она больше ничего не должна уметь делать.
Про KTX хорошо то, что в него можно запихнуть что угодно, объединив всю информацию о позициях букв и само изображение в один файл. А так приходится из файла шрифта ссылаться на файл текстуры, а если ты хочешь переконвертировать допустим текстуру из .png в .dds, то приходится и править файл шрифта, заменяя там png на dds.
UBFG поддерживает только png и bmp. png допустим движок читать не умеет - это нетривиальная задача без сторонних библиотек. bmp проще, ну и там картинка перевёрнутой получается. Вот только bmp не поддерживает изображения в градациях серого. Точнее поддерживает, если заполнить палитру градациями серого, чего ваш UBFG не делает. Он сохраняет картинку как RGB, из-за чего она становится в 3 раза больше, чем должна быть. В UBFG надо хотя бы 8-битный tga добавить. Его наверное даже Qt поддерживает, надо только пункт меню в программу добавить.

RPG
> Форматы там вообще говоря для галочки, так как картинку можно
> переконвертировать во что угодно, да и формат fnt также при помощи awk можно
> преобразовать во что угодно.
Какой fnt? Чему он соответствует в UBFG?

RPG
> Экспорт в DXT1 вообще говоря очень нетривиальная задача.
Я вчера за один день запилил сжатие в DXT1 прямо в шейдере. Правда там не перебирается куча вариантов, как должны делать нормальные сжиматоры. На обычных текстурах 512x512 вообще отличия от оригинала не заметил, а на фотографии с резкими переходами цветов видно блочную структуру на краях. Но в целом неплохо, я считаю. Намного лучше, чем уменьшать с 512x512 до 256x256. Кстати, DirectX Texture Tool выдаёт точь-в-точь тот же результат. Я конечно не сравнивал разность изображений, но визуально артефакты те же самые в тех же самых местах.
А у шрифтов вообще проще, ведь у них один канал, а не три зависимых. Там по-моему никаких вариантов и нет, кроме как взять минимальный и максимальный цвета в блоке и интерполировать между ними. У не SDF шрифтов вообще достаточно 1 бита на пиксель, а DXT1 даёт точность 2 бита на пиксель. Так что ещё и для сглаживания краёв хватит.
Только что проверил DXT1 с SDF. Действительно, выглядит ужасно, как я и предполагал. Надо попробовать BC4, который больше для этого предназначен. Он даёт 3 бита на пиксель, а не 2, как DXT1.

RPG
> Если вы не хотите, чтобы патч висел месяцами, оформляйте Pull Reques в Git. Без
> этого очень сложно вставлять патчи.
В принципе, я добавил этот формат, потому что он был нужен мне. А то что я его сюда выложил, это так, побочный продукт. А вот если выйдет новая версия UBFG с новыми плюшками, без "моего" формата, тогда уже придётся либо использовать старую версию, либо впиливать его заново.
Если бы я знал, что такое pull request... Я почти не пользовался локальным git'ом, а github'ом вообще никогда не пользовался.

RPG
> Но вставлять его в программу не возьмусь - я этот формат не знаю и ни разу не
> пользовался.
Это исправляется за 5 минут, формат очень уж простой. Проще, чем bmp, tga, dds, png. И для вашего движка может пригодиться, ведь он на OpenGL.
Но конечно, чтобы туда встроить ещё и данные шрифта, это надо немного больше повозиться.


Правка: нет, со сжатием я напутал. Случайно оказалось, что я сжимал уже сжатую текстуру. А так визуально отличаются, но где-то артефакты сильнее у меня, а где-то сильнее у DX Texture Tool. Так что всё равно остаётся ничья.

RPG
> когда тулза от nvidia даёт лучший результат в своём классе?
А что за тулза? Я вижу только tools для Adobe Photoshop, но у меня его нет и я не хочу его ставить. Есть самостоятельная тулза?

#454
20:35, 13 мая 2014

gammaker
> А я как раз люблю комбайны, даже есть мысли самому сделать. Если конечно вы
> позволите использовать исходники UBFG. А то надоело, что есть сотни утилит, и
> чтобы получить один файл, нужно выбирать комбинацию из них и последовательно
> через них проводить, да ещё и с костылями.
Не-комбайны как раз придумали чтобы не городить комбайны и автоматизировать. Для этого существует конвейер и скрипты. Каюсь, консольной версии UBFG пока нет, но будет. Будет время - сделаю отдельную библиотеку упаковщика и консольные варианты.

gammaker
> Про KTX хорошо то, что в него можно запихнуть что угодно, объединив всю
> информацию о позициях букв и само изображение в один файл.
Похоже что это просто формат-контейтер. Того же можно добиться zip-архивами, нет?

gammaker
> На обычных текстурах 512x512 вообще отличия от оригинала не заметил
Это зависит от монитора. Очень. Впрочем, если у DDS в 3D сплошные плюсы (из-за всевозможных шейдеров артефакты не так заметны, mip-map), то с 2D не всё так однозначно. Плохо сжимаются градиенты, серьезный проигрыш jpeg при хранении на диске (для мобильных устройств не гут).

gammaker
> Надо попробовать BC4
Не намного лучше. думаю. За счёт сжатия квадратами градиенты дают ошибку, а в Distance Field эта ошибка многократно увеличивается. Я пробовал разные варианты сжатия, png лучший. Ну а в памяти придётся немного разориться (хотя можно обойтись однобитной картой, если хочется), но стоит ли?

gammaker
> Проще, чем bmp, tga, dds, png.
Это довольно сложные форматы, просто у Qt в png экспорт "родной".

gammaker
> А что за тулза?
https://code.google.com/p/nvidia-texture-tools/

#455
20:58, 13 мая 2014

RPG
> Похоже что это просто формат-контейтер. Того же можно добиться zip-архивами,
> нет?
Нет эта текстура, которая опционально сразу после заголовка может содержать пары ключ/значение. Вот я предлагаю, в одну такую пару запихнуть описание шрифта.

RPG
> серьезный проигрыш jpeg при хранении на диске (для мобильных устройств не гут).
Зато память оперативную на мобильных устройствах можно сэкономить. Только там не DXT, а ETC.

#456
0:37, 14 мая 2014

А можно обновить билд для МакОСи?

#457
20:20, 18 мая 2014

Было бы неплохо иметь возможность выбирать символы как в bmfont, т. е. сразу целыми страницами.

#458
17:09, 8 авг. 2014

Есть идеи как у сгенерированного шрифта со сглаживанием (белый на черном фоне) сменить цвет фона и шрифта?
Фон у меня получилось менять:

for( i = 0; i < (image->width * image->height); i++ )
  {
    if( image->data[ i ] == BLACK ) lcd_write_data_color( BLUE ); // Смена фона
    else lcd_write_data_color( image->data[ i ] | BLUE );         // Изменение цвета пикселей сглаживания (понятно, что белый останется белым)
  }
Получается плавный переход от синего к белому цвету шрифта. А как теперь поменять цвет шрифта, скажем, на черный, чтобы сохранить плавный переход от черного к синему фону?
Цель - не генерить массу шрифтов.

Прошло более 10 месяцев
#459
14:08, 23 июня 2015

Плохо разбираюсь в Qt, занимаюсь разработкой мобильных игр. Для своей мультиплатформы использую UBFG. Недавно встал вопрос с обводкой текста. Реализовал поддержку SDF.
Пересобрал UBFG под Mac OS 10.10.3 64 bit на Qt 5.4.2.
для сборки заменил строчку в sdf.cpp
cache.append({x,y});
на
cache.append(qMakePair(x,y));

Sergio
https://www.dropbox.com/s/zq3wb2lef8ssp0e/ubfg.dmg?dl=0

Спасибо автору за этот инструмент!

#460
14:11, 23 июня 2015

blics
> для сборки заменил строчку в sdf.cpp
> cache.append({x,y});
> на
> cache.append(qMakePair(x,y));
Наверное можно было просто включить C++11 в проекте.

#461
9:43, 24 июня 2015

gammaker
возможно

в текущей версии, привью в программе стало отличаться от экспорта
ubfg_sdf | [v 1.1] UBFG - Генератор растровых шрифтов

при экспорте получаю такую картинку
test | [v 1.1] UBFG - Генератор растровых шрифтов

похоже, как будто при экспорте картинка генерится с другим бордером

#462
10:29, 24 июня 2015

Возможно это баг, так как на 1-м скриншоте явно не сработал фильтр trim. Я меня запарки на работе, но если кто-то пришлёт на гитхаб Pull Request с исправлением - я его приму.

#463
14:49, 20 авг. 2015

Avira ругается на ADWARE/Adware.Gen в UBFG-1.1.exe

https://www.virustotal.com/ru/file/d0ed0fb3aedb735da8e8b5f653f430… s/1440071239/

#464
16:15, 20 авг. 2015

Anton Riot
> Avira ругается на ADWARE/Adware.Gen в UBFG-1.1.exe
У меня было такое, что Avast ругался на мой движок и по-моему даже удалил его. После чего та же участь настигла сам недоантивирус. Тут наверное тоже ложное срабатывание.

Страницы: 128 29 30 31 32 33 Следующая »
ПроектыФорумУтилиты