Форум

* Как? выводить произвольный текст выбранным шрифтом из JS на объекте или как объект ?

23 сентября 2016 10:05
Ответ на сообщение пользователя Семенцов Роман
Добрый день.
Я немного не в теме беседы, уж очень активно вы тут обсуждаете
можно узнать, какой девай вы имеете ввиду?
Firefox?
У объекта в блендере стоит галочка Outlining?

да ФФ х64
Галочку проверю конечно, я то много эксперементировал, мог для теста и отключить ((

Смарт часы это на Тизене , браузер встроенный вебкит вроде как совместимый .

____________ ОБНОВЛЕНИЕ: _____________

верно подмечено.. я пока игрался с настройками отключил ОУТЛИНИНГ у остальных плейнов..
спаисбо за направление в нужное русло..

а еще интерсно , что после программного обновления ( замена на другую из того же шрифта)
иконка в одном из шрифтов стала отображаться ))) .. буду дальше посмотреть почему такое может быть..
самое интерсное что все выдодится одной и то же функцией .. просто заменил в переменной код .
и при инициализации код начальный грузится из VAR
Денис
24 сентября 2016 01:59
обнаружил в логах такую инфу при отладке о видеоускорителе девайса может чем поможет? :

* egl_platform_x11.c: __egl_platform_initialize(127) > DDK VERSION - MALI400MP-r4p0-00rel0 / BUILD DATE - 26/May/2016

* [gpu-ddk] devel/graphics_drv/r4p0
Денис
27 сентября 2016 11:36
Добрый день.

Не могли бы вы собрать воедино сейчас, всё что уже у вас получилось и что не работает. Так будет чуть-чуть проще разобраться
27 сентября 2016 15:09
Ответ на сообщение пользователя Семенцов Роман
Добрый день.

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


подитоживаю :

1. выделение объекта заработало, но в связи с тем что у меня 1 ФПС это скажем так не выглядит интерактивно ))
но тут ни чего не поделать наверное, или после клика сразу запускать рендер кадра( итог примено через 0.3-0.5 сек получится ( по сему пока оставил как есть)

2. Вывод Иконочного шрифта(ГЛИФЫ) как текстуры поверх прозрачного плейна заработал, но почему то ЮНИКОД сивольные коды отображаются не верно.. а точнее показывает китайские иероглифы вместо иконок из шрифта

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

кроме этого в логах пишет что вывод шрифтами сильно замедляет рендер( если я правильно понял) а это для меня критично ,
или это имеется ввиду ТЕКСТ из блендера не пребразованый в меш?

(Error: WebGL: texImage2D: Incurred CPU-side conversion, which is very slow. b4w.min.js:572:53
Error: WebGL: texImage2D: Incurred CPU pixel conversion, which is very slow. b4w.min.js:572:53
Error: WebGL: texImage2D: Chosen format/type incurred an expensive reformat: 0x1908/0x1401)

3. Вывод шрифтовой текстуры игнорирует порядок расположения объектов в сцене и выводится поверх всего что есть в сцене

приостановил проект. хотя готовность уже достаточно высокая ((

PS я уже сделал софт ресет устройства.. чтоб с чистого листа и обновил СДК .

три скрина:

1. девайс только запущен


2. девайс после клика и перезагрузки одной из иконок


3. ФФокс тестовый когда значки нормальные кроме того шрифта что с значками погоды ( правый верхний)


вот тут видно что текстуры в ФФ отображаются на правильном месте
под стрелками!
Денис
27 сентября 2016 15:24
1. выделение объекта заработало, но в связи с тем что у меня 1 ФПС это скажем так не выглядит интерактивно ))
но тут ни чего не поделать наверное, или после клика сразу запускать рендер кадра( итог примено через 0.3-0.5 сек получится ( по сему пока оставил как есть)

Да, для старта outline-эффекта необходимо отрендерить кад заново.

2. Вывод Иконочного шрифта(ГЛИФЫ) как текстуры поверх прозрачного плейна заработал, но почему то ЮНИКОД сивольные коды отображаются не верно.. а точнее показывает китайские иероглифы вместо иконок из шрифта

Вы пробовали нарисать их в простой 2d канвас отдельно? Без использования специфического шрифта?
Вы их каждый кадр обновляете? Возмонжо, что тут нету ничего страшного. Можно потестить с ним и без него, думаю, разница будет небольшой

3. Вывод шрифтовой текстуры игнорирует порядок расположения объектов в сцене и выводится поверх всего что есть в сцене

Не могла быть ситуация, когда вы случайно на объекте (или материале этого объекта), где есть эта текстура, случайно проставили галочку "Render above all"(свойтсво материала) ? Подобное поведение свойственно для "x-ray" объектов (свойтсво объекта).

Посмотрел на серию изображений, насколько я понимаю, это один и тот же проект на разных браузерах? В одном работает корректно, в другом - возникает проблема с глубиной. Тогда x-ray тут не при чём, надо будет постараться воспроизвести подобное поведение. Насколько я понимаю, внутри GPU MALI400MP.
27 сентября 2016 15:53
Ответ на сообщение пользователя Семенцов Роман
Да, для старта outline-эффекта необходимо отрендерить кад заново.
….. Насколько я понимаю, внутри GPU MALI400MP.

Я и иконки эти с шрифтами и сам код которым вывожу ранее успешно использовал на 2Д канвасе
но выводил через инструкции CSS все отлично выводилось , а тут такая не задача …

вот на 2Д как оно работало:


РЕНДЕР АБОВ АЛЛ не установлен ( проверил)

типик (
Денис
28 сентября 2016 14:04
выручайте, проект застрял ..
похоже все-же дело в выводе движком ..
может внести исправления в релиз до его выхода?

Спасибо
Денис
28 сентября 2016 14:26
По поводу некорректных иконок, вы используете канвас-текстуру для их отображения? Там используется обычный 2D канвас, который затем рисуется в текстуру, то есть если есть проблема - то она в отрисовке на 2D канвас. Когда вы тестировали на обычном канвасе, вы добавляли канвасу какие-нибудь CSS-свойства? Если да, то попробуйте добавить их добавить и к канвасу, который использовался для рендерингва в текстуру. Пример можно посмотреть в демке New Year в .css файле, там на весь body навешивается нужный шрифт.

По поводу GPU, вроде как завтра получится потестить на этом железе (правда на другой системе). Насколько я понимаю, проблема наблюдается в google-chrome? Есть подсказки как воспроизвести баг или для этого не надо особо стараться?
28 сентября 2016 15:10
Ответ на сообщение пользователя Семенцов Роман
По поводу некорректных иконок, вы используете канвас-текстуру для их отображения? Там используется обычный 2D канвас, который затем рисуется в текстуру, то есть если есть проблема - то она в отрисовке на 2D канвас. Когда вы тестировали на обычном канвасе, вы добавляли канвасу какие-нибудь CSS-свойства? Если да, то попробуйте добавить их добавить и к канвасу, который использовался для рендерингва в текстуру. Пример можно посмотреть в демке New Year в .css файле, там на весь body навешивается нужный шрифт.

По поводу GPU, вроде как завтра получится потестить на этом железе (правда на другой системе). Насколько я понимаю, проблема наблюдается в google-chrome? Есть подсказки как воспроизвести баг или для этого не надо особо стараться?


1. по поводу китайского:
ни делал ничего особенного так же как и в прошлом варианте ( не 2д канвас а просто HTML + CSS)
Ввел в css описание шрифта а потом его применил при выводе на канвас в качестве шрифта, название иконок подаю через код иконки в шрифте типа :


var textLcd1='\uE628';
…..

lcd1_001 = m_scs.get_object_by_name("lcd1.001");
// поиск текстуры по имени
ctx_image2 = m_tex.get_canvas_ctx(lcd1_001, "textureText.001");
//HTML5 Canvas функции и переменные
ctx_image2.clearRect(0,0,512,512);
ctx_image2.fillStyle = "rgba(0,0,0,1)";
ctx_image2.font = "250px weathericons";
ctx_image2.textAlign = "center";
//shdws
//ctx_image2.shadowOffsetX = 25;
//ctx_image2.shadowOffsetY = 25;
//ctx_image2.shadowBlur = 20;
//ctx_image2.shadowColor = "rgba(0,0,0,1)";
//вывод текста
ctx_image2.fillText(textLcd1, 300, 300);
m_tex.update_canvas_ctx(lcd1_001, "textureText.001");



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


2.
Проблема наблюдается на встроенном в Тизен системном браузере(часть ОС), это не гугл хром итд.. у енго нет названия к сожалению и он системный.
Денис
28 сентября 2016 16:51
Видимо, надо настроить стили как раз для встроенного браузера, скорее всего он не понимает те стили, которые вы задали (в отличие от FF). Представьте, что это Internet Explorer :D для которого писались и продолжают писаться свои стили
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.