HLFX.Ru Forum Страницы (255): « Первая ... « 72 73 74 75 [76] 77 78 79 80 » ... Последняя »
Показать все 3825 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)


Отправлено SNMetamorph 11-03-2020 в 07:19:

Цитата:
Дядя Миша писал:
TTF либо стандартными виндовыми средствами, либо на линуксе через FreeType2. Таскать вместе с движокм библиотеку, которая весит больше чем сам движок я не планирую.

Есть, насколько я помню, еще махонькие stb-библиотеки для этих же целей.

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено Дядя Миша 11-03-2020 в 11:07:

Я уважаю Баррета и всё что он делает, но рендеринг шрифтов - нетривиальная задачка.

Ну вот у него там примерчег:

C++ Source Code:
fread(ttf_buffer, 1, 1<<20, fopen("c:/windows/fonts/times.ttf", "rb"));
stbtt_BakeFontBitmap(ttf_buffer,0, 32.0, temp_bitmap,512,512, 32,96, cdata); // no guarantee this fits!

Типо никакой гарантии, что все буквы влезут в атлас, плюс этому коду надо указывать не имя системного шрифта, а путь до физического файла. Зачем мне, спрашивается, всё переделывать, если я уже сделал анализатор упаковки, который подбирает оптимальные размеры, наложил пост-процессы и прочее. Если бы я про него вспомнил парой дней раньше, может быть и заюзал бы.

Добавлено 11-03-2020 в 13:57:

Он фактически в этот хидер запихал софтрендер. Теперь спрашивается, если какие-то буквы некорректно отрендерятся или упадёт это всё - как исправлять ошибку, как это поддерживать? Ну нафиг, я не хочу с этим связываться. Есть виндовые функции, им я доверяю в этом плане.

Добавлено 11-03-2020 в 14:07:

Я единственно о чём жалею - слишком поздно нашёл его репозиторий, если бы мне его кто-то показал в 2010-м, я бы был в восторге, а щас - уже не нужно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено nemyax 11-03-2020 в 11:22:

Так-таки и "c:/windows"? Даже без попытки порезолвить %windir%?


Отправлено Дядя Миша 11-03-2020 в 12:12:

Цитата:
nemyax писал:
Так-таки и "c:/windows"?

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 12-03-2020 в 10:19:

Так товарищи, а подскажите мне навскидку, как правильно выбирать point size шрифта в зависимости от разрешения экрана? Я пока придумал, разрешение поделить на 80 и получившееся число и будет нашим point size.
80 - это кол-во буков в консоли.

Добавлено 12-03-2020 в 13:19:

Конечно при разработке нового формата мне бы хотелось, чтобы визуально новые шрифты не слишком отличались от старых. Так например в халфе яркость шрифтов не 255, а 192 и у всех по дефолту есть обводка.

Первые результаты:
Старый шрифт

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 12-03-2020 в 10:19:

И новый. Джпипег цвета побил

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 12-03-2020 в 11:18:

Дядя Миша
Так сохраняй с минимальной компрессией в фотошопе, вообще хранить шрифты в жпеге крайне странная затея. Лучше уж тогда генерить из .ttf

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено nemyax 12-03-2020 в 11:18:

Дядя Миша
Взял бы шрифт, где легко отличить I, l, 1. Например, Tahoma, Verdana, PT Sans.


Отправлено ncuxonaT 12-03-2020 в 11:50:

Мне казалось, для консоли моноширинные шрифты используют


Отправлено Дядя Миша 12-03-2020 в 12:02:

Цитата:
FiEctro писал:
вообще хранить шрифты в жпеге крайне странная затея

Шрифты не в джипеге, это я вам скриншот выложил в джипеге

Цитата:
ncuxonaT писал:
Мне казалось, для консоли моноширинные шрифты используют

любой шрифт с переменной шириной легко отрисовать как моноширинный.

Я тут подумал, что старый вариант консоли, где кол-во символов на строке варьировалось в зависимости от разрешения экрана - стрёмный. Ну потому что это придумал еще Кармак для моноширинных шрифтов, которых была всего одна штука. Сейчас, когда мы можем загружать на каждое разрешение свой шрифт (или с близким point size), это становится наоборот неудобно. Я принял классический размер консоли в 80 символов.
Вот что у меня в итоге получилось.
На этот раз сохранил в PNG чёб цвета непобились.

Добавлено 12-03-2020 в 15:02:

хм, форум в PNG не умеет, очуметь можно

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 12-03-2020 в 18:54:

Да уж, непросто избавиться от вадов. Намертво они въелись.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 13-03-2020 в 19:24:

Мне тут в голову пришла забавная мысль. Тот формат, который я разработал для шрифтов с таким же успехом можно использовать и для спрайтов и для внешних лайтмап, например, вообще для любых атласов.
Зачем там городить какой-то разный огород? Для всех единый удобный формат и вася-кот.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 14-03-2020 в 09:05:

Ну вообщем-то да, всё в эту схему укладывается и худ-спрайты и трава и партикл-фонты и импосторы. Таким образом в движке получится четыре типа объектов:
1. текстура
2. вот эти вот атласы, работающие в паре с текстурой
3. модели
4. уровни

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 14-03-2020 в 16:53:

Вот такой атлас получился.

Подаем на вход makespr для XashNT халфовский hud.txt. Он его читает, грузит с него все спрайты и объединяет их в атлас. Теперь у нас все элементы худа в одной текстуре. Можно так же просто подать на вход имя спрайта и он превратится в аналогичный атлас с внешним хидером.
Это для миграции с халф-лайфов. Для создания новых спрайтов надо просто наделать кадров и указать их на вход по маске. Ну возможны, конечно еще какие-то режимы работы, в будущем.

Добавлено 14-03-2020 в 19:53:

Между прочим поддерживаются поименованные кадры спрайтов. Этот хидер, который я разработал - это мета-контейнер на самом деле.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 14-03-2020 в 20:30:

Наконец-то дошли руки опробовать тот упаковщик атласа, котоым так восторгался Психопат. Ну это который строит подобие BSP-дерева из ректанглов. Опробывал, результат в аттаче. Можете сравнить с верхним.
И ярко видна вот эта тенденция оставить правый нижний угол пустым. Если бы это было в 3д, я бы конечно предложил порубать изначальный объем надвое, но это блин картинки, их нельзя так разрубать
Правда справедливости ради стоит отметить, что это единственный фейл упаковщика - на остальных картинках меньшего размера, он довольно неплохо справился. Впрочем единственная его заслуга - картинки лежат приятно глазу. Но не слишком эффективно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 06:38. Страницы (255): « Первая ... « 72 73 74 75 [76] 77 78 79 80 » ... Последняя »
Показать все 3825 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024