HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Страницы (32): « Первая ... « 26 27 28 29 [30] 31 32 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34981
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


FiEctro
В MacOS. Все шрифты волатилы растеризованы в MacOS.

__________________

Сообщить модератору | IP: Записан
Сообщение: 223789

Старое сообщение 07-03-2025 18:24
-
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Цитата:
XaeroX писал:
В волатиле битмаповые шрифты, и вполне чёткие.

Это ж прошлый век. Современный движок с заготовленными картами шрифтов. Они как минимум должны при выборе группы/стиля/размера шрифта динамически растеризоваться.

Сообщить модератору | IP: Записан
Сообщение: 223791

Старое сообщение 07-03-2025 18:57
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13495
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
В MacOS. Все шрифты волатилы растеризованы в MacOS.


Расскажи пожалуйста подробнее. Это утилита какая то?

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

Сообщить модератору | IP: Записан
Сообщение: 223792

Старое сообщение 07-03-2025 19:11
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34981
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Unit
Мы тут на форуме на нынешний век и не претендуем. А для прошлого вполне норм!

FiEctro
Да, в SDK волатилы будет утилита. Но смысл именно под макосью её запускать. Там встроенный в ось растеризатор работает через обвязку QT.

__________________

Сообщить модератору | IP: Записан
Сообщение: 223794

Старое сообщение 07-03-2025 22:33
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33002
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
И ещё сразу вопрос на засыпку, будет ли возможность подключать .ttf шрифты?

Ксаш налету генерит шрифты из ttf. А мыльные они совсем по другой причине - я масштабирую итоговую картинку, вместо того чтобы пересчитывать разрешение. То есть, для других point size будут сгенерены новые чёткие шрифты, просто на данный момент код отрисовки меню не делает запроса на них. То есть ещё раз - шрифты генерятся из ttf и кэшируются в виде растровых. Это всё происходит налету и прозрачно для пользователя.

Добавлено 08-03-2025 в 10:19:

Вы все наверное читали эти увлекательные заметки на Хабре и смешные рассказы на башорге, как наследование одних объектов от других приводило к совершенно удивительным и непредсказуемым эффектам. Ну из того, что запомнилось лично мне - в какой-то военной стратегии надо было сделать окружающую живность, типо свиней, коров и птиц. И их унаследовали от солдат. В результате чего хрюшки оказались патриотичными и переодически пытались атаковать неприятеля.
Ну так вот, можно сказать, что в XashNT теперь тоже есть такой класс.
Я унаследовал растровые шрифты от класса модели. Однако, благодаря изначально грамотно продуманной и хорошо спланированной архитектуре, это не просто сделано, чтобы заткнуть компилятор, который не хочет собирать проект, а напротив - сработало на композицию и наделило шрифты всеми свойствами полноценной модели. Теперь буквы шрифтов потенциально можно рендерить в 3D-пространстве, собирать для них освещение, трассировать буквы и символы, даже лайтмапу можно наложить.
Универсальный контейнер, в которой хранятся шрифты не отличается от таковых для хранения моделей и тоже наследует все их свойства.
То есть в данном случае всё получилось правильно.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 223797

Старое сообщение 08-03-2025 07:19
-
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Цитата:
XaeroX писал:
Мы тут на форуме на нынешний век и не претендуем.

А зря, картинка в волатиле на это способна. Да и вон ДМ шрифты динамические сделал, вполне современно.

Сообщить модератору | IP: Записан
Сообщение: 223800

Старое сообщение 08-03-2025 09:05
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13495
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
То есть в данном случае всё получилось правильно.


Но они по прежнему мыльные

Добавлено 08-03-2025 в 16:32:

Цитата:
XaeroX писал:
Да, в SDK волатилы будет утилита. Но смысл именно под макосью её запускать. Там встроенный в ось растеризатор работает через обвязку QT.



Блин, если я захочу такое сгенерировать, что мне нужно будет сделать?

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

Сообщить модератору | IP: Записан
Сообщение: 223805

Старое сообщение 08-03-2025 13:32
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33002
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Но они по прежнему мыльные

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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 223806

Старое сообщение 08-03-2025 16:19
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34981
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
FiEctro писал:
Блин, если я захочу такое сгенерировать, что мне нужно будет сделать?

Ну грубо говоря - написать простейший растеризатор шрифтов в битмапы на Qt и запустить под макосью, и там сохранять картинки, а не под виндой.

__________________

Сообщить модератору | IP: Записан
Сообщение: 223807

Старое сообщение 08-03-2025 16:53
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13495
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Ну представь мне сидеть и под каждое разрешение вручную подбирать раскладку элементов в меню, этож с дуба рухнуть. Такого даже в винде и то нет. Ну хочешь - оно съедет в верхний левый угол и будет маленькое. Устроит тебя такое?


А зачем вручную? У тебя якорей чтоле нет? И в процентах считать не умеет? Неужели нельзя высчитать какой процент на экране оно занимает, и из этого процента от разрешения получить нужное значение в пикселях и прочие скейлы и сдвиги? Ну или по тупому атлас в 2к генерить для всех разрешений. Тоже конечно мыльно будет, но не так сильно, жить можно.

В UI обязательно все элементы в процентах считать и якоря задавать. А то со сдвигами в пикселях там реально жопа будет. Вот тут можешь почитать про адаптивную верстку:
https://unityhub.ru/guides/sozdanie...i-interfejsa_35

Цитата:
XaeroX писал:
Ну грубо говоря - написать простейший растеризатор шрифтов в битмапы на Qt и запустить под макосью, и там сохранять картинки, а не под виндой.


А какая разница? Под виндой или макосью будет оно сохранять? Это же твой растеризатор.

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

Отредактировано FiEctro 08-03-2025 в 17:14

Сообщить модератору | IP: Записан
Сообщение: 223808

Старое сообщение 08-03-2025 17:05
- За что?
Unit
Частый гость

Группа: Неопытный
Дата регистрации: Jun 2024
Проживает: Краснодарский край
Сообщений: 70

Рейтинг



Цитата:
FiEctro писал:
Блин, если я захочу такое сгенерировать, что мне нужно будет сделать?

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

Сообщить модератору | IP: Записан
Сообщение: 223809

Старое сообщение 08-03-2025 17:07
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34981
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


Цитата:
FiEctro писал:
Это же твой растеризатор.

Да, но под капотом используется системный.

__________________

Сообщить модератору | IP: Записан
Сообщение: 223811

Старое сообщение 08-03-2025 19:38
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33002
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Неужели нельзя высчитать какой процент на экране оно занимает, и из этого процента от разрешения получить нужное значение в пикселях и прочие скейлы и сдвиги?

Как я тебе переведу POINTSIZE в функцию от масштаба разрешения? Оно же нелинейное.

Добавлено 09-03-2025 в 10:43:

Это Кармаку легко было, у него шрифты с фиксированными отступами и все буквы квадратные.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 223812

Старое сообщение 09-03-2025 07:43
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33002
Нанёс повреждений: 392 ед.

Рейтинг



Немного теоретической инфы выдам, чтобы вы поняли суть проблемы.
Итак, в Core Profile невозможно ничего нарисовать как прежде - забиндить текстуру, вызвать glBegin и погнали. Это в сущности невеликая проблема.
Когда я только-только начинал строить XashNT я уже исходил из того, что буду переводить его на Core Profile, поэтому у меня абсолютно весь рендеринг строится на VAO+VBO+IBO и на шейдерах. Но это справедливо только для трёхмерного рендеринга. Двухмерный в своё время я тоже перевёл на VAO+VBO, однако конвейер остался фиксированный. Не было у меня времени тогда с этим возиться, а ничего сложнее смены текстуры и задания цвета от двухмерных картинок не требовалось, да собственно, в рамках меню и худа - не требуется и по сей день. Хорошо, теперь проблема так сказать получила максимальный приоритет в рамках миграции на Core Profile и я её решаю. В 2D мы имеем дело с двумя сущностями: шрифты (под шрифтом разумеется что угодно, как буквы, так и набор именованных иконок), и просто картинки. Теперь, собственно, самая суть:

В новом ксаше абсолютно всё рисуется через систему материалов, кроме того, что рисуется через фиксированный конвейер. Поскольку в Core Profile этого функционала уже нет, нам очевидно следует перевести всё на систему материалов. И тут возникают известные трудности. Во первых материал, сам по себе не может существовать в вакууме. Он слинкован с сущностью, для которой он принадлежит, причём эта сущность непременно должна наследоваться от базового класса модели.
Тогда мы можем запрашивать для нашего материала кучу всяких полезных вещей - освещение, амбиент-кубы и протчее. То есть ситуации, когда материал не слинкован с моделью, попросту не предусмотрено.
Для шрифтов это требование довольно легко соблюсти - достаточно унаследовать класс шрифта от класса модели. Технически шрифт сам по себе и есть модель - он тоже использует юниформ-контейнер для хранения данных и всё такое. Тут проблем нет. А мелкие шероховатости для такой имплементации элементарно решаются в процессе отладки.
То есть система сразу заработает как надо, а если что-то вдруг будет не так, исправится после очередного бета-тестирования.
Совсем иная ситуация с рендерингом отдельно стоящих картинок.
Картинка очевидно не может быть сущностью, типа модели. Уже хотя бы потому что в материале этих картинок может быть сколько угодно загружено. Ну то есть, логическая нестыковка.
Поэтому я принял следующее решение: любые картинки будут загружаться как шрифты. То есть с тем же именем, создавать для себя уникальный материал ну и всё такое. И представлены будут как шрифт с одной буквой ну или с одной иконкой, если хотите.
К тому же, поскольку там целый набор взаимодействия с ректанглами, к этой сущности куда проще и удобнее прикрутить динамические текстуры с обновляемыми пикселями. То есть концепция достаточно стройная и надёжная. Но не без подводных камней, о которых я расскажу немного позже.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | IP: Записан
Сообщение: 223816

Старое сообщение 09-03-2025 13:10
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4735
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
Я унаследовал растровые шрифты от класса модели.

Замечательный задел для школьников будущего которые выкатят свой "исправленный ксаш" где будет отдельный класс для шрифтов.

Сообщить модератору | IP: Записан
Сообщение: 223820

Старое сообщение 09-03-2025 13:56
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 20:23. Новая тема    Ответить
Страницы (32): « Первая ... « 26 27 28 29 [30] 31 32 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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