Quest3D - Русскоязычное сообщество

Quest3D => Общие вопросы => Тема начата: anval от 24 Марта 2011, 12:05:41



Название: Красивый шрифт?
Отправлено: anval от 24 Марта 2011, 12:05:41
Всем привет.Если не в фотошопе.В смысле из текстового файла.Т.к.они в основном наклонные ,то 3d text in texture не подходит.Получается для каждой буквы в максе делать отдельный плейн ,затем ref object data  и ref texture(oo) и еще объединять для слова object data.Может у кого нибудь есть решение попроще,побыстрее. Подскажите или намекните:)


Название: Re: Красивый шрифт?
Отправлено: Sqwer от 24 Марта 2011, 15:57:25
Цитировать
Т.к.они в основном наклонные ,то 3d text in texture не подходит.
Почему не подходит?
создаёшь текстурку с наклонными символами  и  мапишь в канале TexturePropertis каждую букву. (текст в текстуре я делал  прогой  ТекстурФонтБилдер за 1 минуту, а мапил примерно час).

Если текст нужен на ГУИ а не на  поверхности например  3D консоли (терминал оплаты), то всё прекрасно делается обычным текстаутом.

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



Название: Re: Красивый шрифт?
Отправлено: anval от 24 Марта 2011, 16:25:58
Но как nы корректировал расстоянме между буквами?Например буквы"а" и "б".В наклонном шрифте если сначала б потом а,то хвостик б выходит за начало а, а в Texture Properties прямоугольники.Ладно,давно пора разобраться с каналами, а точнее с с++.


Название: Re: Красивый шрифт?
Отправлено: dfx от 30 Марта 2011, 23:54:14
А что мешает собрать конструкцию, типа textOut -->> RTT, а потом накладывать полученную текстуру на плоскость ?
Быстрее же взывать одну плоскость на строку/колонку, чем на каждый символ. ???


Название: Re: Красивый шрифт?
Отправлено: Sqwer от 31 Марта 2011, 01:36:55
anval
Цитировать
Но как nы корректировал расстоянме между буквами?Например буквы"а" и "б".В наклонном шрифте если сначала б потом а,то хвостик б выходит за начало а

текстурку надо делалать Фонт Билдером  (там  букоски не заходят, и прямоугольнички описывающие буковки не пересекаются).

dfx
Цитировать
А что мешает собрать конструкцию, типа textOut -->> RTT, а потом накладывать полученную текстуру на плоскость ?

системка,если на её основе делать   текст в гуи -  не благодарная работа.

Цитировать
Быстрее же взывать одну плоскость на строку/колонку, чем на каждый символ.
на спичках не экономят, гуи никогда не был узким местом.

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


Название: Re: Красивый шрифт?
Отправлено: anval от 31 Марта 2011, 08:34:51
про буковки и прямоугольнички... :)


Название: Re: Красивый шрифт?
Отправлено: Sqwer от 31 Марта 2011, 10:23:27
еа форуме нет места разместить  картинку


так вот:  чтобы сделать текстуру шрифта  нужно использовать  программу Bitmap Font Builder  для того чтобы не было как на картинке



на этапе  отображения  используй 3dTextOut по адресу:

Templates->02 Objects -> Text -> 2d text from Texture

У канала  3D text from texture    есть чилдрен (второй по счёту)

который обуславливает  рассстояние между буковками.

это растояние   в твоём случае нужно сделать отрицательным (-0,1 например)

и будет именно такой  шрифт как у тебя на картинке


Проде



Название: Re: Красивый шрифт?
Отправлено: dfx от 31 Марта 2011, 15:15:00
Цитировать
на спичках не экономят, гуи никогда не был узким местом.
Это зависит от задачи. Например квестовый гуи не быстрый и его можно использовать только для простых случаев. Если нужны списки с картинками, всплывающие меню с иконками+текст, всплывающие подсказки и т.д., то возникнут проблемы.
Можно вообще запекать текст в изображение элемента при его инициализации, если он статичный.

Цитировать
быстрее в случаях не частого использования , а если придётся делать нечто вроде  бегущей строки, или Эдит бокса
это окажется даже медленнее.
В обоих случаях это зависит от площади, занимаемой им на экране и объема текста. В первом случае обновлять текстуру можно по событию изменения текста или в режиме редактирования вообще выводить его напрямую с ртт. Во втором имеем даже более гладкую анимацию, просто смещая текстурные координаты. Конечно, в случае, если строка очень большая, то могут возникнуть проблемы.

Вариантов решения масса, т.ч. как удобнее/быстрее/красивее, так и делайте)