[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум Panda3D - по русски » Panda3D » Для начинающих » TextNode
TextNode
dis_nodeДата: Вторник, 07.12.2010, 21:03 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
В мануале (wiki) на TextNode упоминаются "screen units", в которых измеряются координаты карт (card) TextNode.set(/get)CardActual(l, r, b, t) и др. параметры TextNode. Что это за термин и как их конвертировать в координаты aspect2d ?

Сообщение отредактировал dis_node - Вторник, 21.12.2010, 22:35
 
ninthДата: Среда, 08.12.2010, 06:59 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Вроде 1 юнит соответствует размеру стандартного шрифта в 10pt, а высота aspect2d - 2 юнита
 
dis_nodeДата: Среда, 08.12.2010, 22:15 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
Quote (ninth)
высота aspect2d - 2 юнита

в смысле -1 до 1 ?

а какой размер шрифта используется loader.loadFont при генерации из ТТ-шрифта ? 10pt ?

я привязываю TextNode к DirectFrame и хочу динамически менять параметры wordwarp при изменении размера фрэйма, чтобы текст оставался в рамке при неизменном размере шрифта, не было такой заморочки?

Сообщение отредактировал dis_node - Среда, 08.12.2010, 22:31
 
ninthДата: Четверг, 09.12.2010, 02:27 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Quote (dis_node)
в смысле -1 до 1 ?

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

Quote (dis_node)
а какой размер шрифта используется loader.loadFont при генерации из ТТ-шрифта ? 10pt ?

Точных указаний я не нашёл, есть лишь вот это "a typical font is 10 points high". Видимо, зависит от самого шрифта.

Не совсем понял чего ты хочешь добиться? Чтобы текст НЕ масштабировался? Или... лучше нарисуй пример)

 
dis_nodeДата: Четверг, 09.12.2010, 21:30 | Сообщение # 5
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
стандартные шрифты имеют постфикс "12" (cmr12.egg), "a typical font is 10 points high" - где вычитал ?

1) Хочу чтобы wordwarp был связан с горизонтальным размером окна (не вылезал за фрэйм, без масштабирования текста)
2) фрэйм создать в размер текста (card не устраивает)

TextNode.getCardActual() дает card-координаты в масштабе TextNode, нужно перевести их масштаб aspect2d.

Походу придется по-экспериментировать, думал есть готовая теория.

 
ninthДата: Четверг, 09.12.2010, 21:58 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Всё равно никак невкурю ) Лучше на пальцах и в виде рисунка как для маленького, я не слишком много с текстом работал. )

по поводу 10pt здесь
http://www.panda3d.org/apiref.php?page=DynamicTextFont

 
dis_nodeДата: Вторник, 14.12.2010, 21:39 | Сообщение # 7
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
http://www.zumodrive.com/share/90P8MjI3YT

"screen units" - думаю так называют 2D единицы измерения (aspect2d), конвертация не требуется, но TextNode выдает данные без приведения к масштабу текста (это приходится делать вручную). Походу неважно какой размер шрифта, текст инициализируется высотой примерно 1 (плавает, почему не выяснил) и его нужно масштабировать через NodePath. OnscreenText масштабируется чуть меньше чем TextNode и не передает свои трансформации потомкам.

 
ninthДата: Среда, 15.12.2010, 01:53 | Сообщение # 8
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Я думаю это стоит кинуть в раздел "примеры кода".
Плавает по высоте я так подозреваю из-за свойств самого шрифта. Просто для стандартного экранного размера в 12pt эти различия не заметны, а когда он у тебя на пол экрана - сразу бросается в глаза. Попробуй в гимпе или фотошопе сделать шрифт очень большого размера и посмотреть как разные шрифты себя ведут - лично я наблюдал довольно большие отклонения в размерах для разных шрифтов, при том, что размер в пунктах оставался неизмменным.
 
dis_nodeДата: Четверг, 16.12.2010, 22:04 | Сообщение # 9
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
Шрифт 10pt действительно дефолтный для генератора egg-mkfont.exe и он должен давать 1-высоту. Можно генерить мелкий шрифт, но качество никакое, для улучшения приходится увеличивать текстуру раза в 4 и все равно г. Масштабирование (NodePath.setScale) дает гудостное качество, но придется создавать сетку масштабов для различных разрешений экрана и типов сообщений. Еще вариант отмасштабировать геометрию в самом EGG-шрифта, но че из этого выйдет х.з. Пробовал редактировать EGG в Блендере, импортер (.flt) теряет UV и на этом амба. Так что пока только масштабирование, ну и вместо card скорее всего DirectFame.
 
ninthДата: Пятница, 17.12.2010, 08:14 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
с ключами -ppu и -ps для egg-mkfont не пробовал играть?
 
dis_nodeДата: Пятница, 17.12.2010, 20:59 | Сообщение # 11
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
-ps 0.5
-ppu 400

шрифт все равно крупноват, качество г..., текстура 20к (в 4 раза больше чем при -ppu 60). setScale(0.05) качественнее. Хотя я предпочел бы иметь набор шрифтов (заранее отмасштабированные EGG).

 
ninthДата: Воскресенье, 19.12.2010, 13:48 | Сообщение # 12
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Если фиксированные, то можно ещё -sf в 1 поставить и проверить какой тип фильтрации используется.
 
dis_nodeДата: Понедельник, 20.12.2010, 22:47 | Сообщение # 13
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
Мини-утиля масштабер EGG'а (прикрепил) - заменитель NP.setScale(). Осталось сделать пакетную генерацию сразу для сетки масштабов и ГУЙ.
Прикрепления: egg_scaler.rar (0.6 Kb)
 
ninthДата: Вторник, 21.12.2010, 08:06 | Сообщение # 14
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
ну можно же и вызов egg-mkfont из скрипта сразу делать )
 
dis_nodeДата: Вторник, 21.12.2010, 22:48 | Сообщение # 15
Лейтенант
Группа: Пользователи
Сообщений: 56
Награды: 0
Репутация: 2
Статус: Offline
в общем да, пока интересовал принцип.

Сообщение отредактировал dis_node - Среда, 22.12.2010, 19:33
 
Форум Panda3D - по русски » Panda3D » Для начинающих » TextNode
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: