论坛

由用户创建的信息 den812
28 September 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 September 2016 14:04
выручайте, проект застрял ..
похоже все-же дело в выводе движком ..
может внести исправления в релиз до его выхода?

Спасибо
27 September 2016 15:53
Ответ на сообщение пользователя Семенцов Роман
Да, для старта outline-эффекта необходимо отрендерить кад заново.
….. Насколько я понимаю, внутри GPU MALI400MP.

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

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


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

типик (
27 September 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. ФФокс тестовый когда значки нормальные кроме того шрифта что с значками погоды ( правый верхний)


вот тут видно что текстуры в ФФ отображаются на правильном месте
под стрелками!
24 September 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
23 September 2016 10:05
Ответ на сообщение пользователя Семенцов Роман
Добрый день.
Я немного не в теме беседы, уж очень активно вы тут обсуждаете
можно узнать, какой девай вы имеете ввиду?
Firefox?
У объекта в блендере стоит галочка Outlining?

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

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

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

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

а еще интерсно , что после программного обновления ( замена на другую из того же шрифта)
иконка в одном из шрифтов стала отображаться ))) .. буду дальше посмотреть почему такое может быть..
самое интерсное что все выдодится одной и то же функцией .. просто заменил в переменной код .
и при инициализации код начальный грузится из VAR
22 September 2016 17:25
Ответ на сообщение пользователя Кирилл
У меня работало так:
1. Настроил эффект в блендере
2. Скормил объект этой функции

Потом можно через set_timeout в модуле time или нативным setTimeout() вырубить outline через секунду.


опишу, что получилось после опытов, а что нет и как.

ПЕРВОЕ ( ПК)
в связи с настройкой 1 ФПС подобрались след. параметры
и удалось подсветить объект только с сл кадре на всем его протяжени
хорошо бы конечно сразу подсветить , но для этого надо будет сразу инициировать рендеринг что нагрузит это маломощный девайс чересчур и все затормозится..
а вот что не получилось: ни как не удается добиться попадания,
а точнее вызова подсветки любого плейна ниже самого первого в кейсе - (lccd.000) . парадокс какой то, т.е. и объект находится и он и имя выдает и все , но в консоли вызывается ошибка:
B4W ERROR: apply_outline_anim(): wrong object

код опроса получился такой:

function main_canvas_clicked_cb(e) {
var x = m_mouse.get_coords_x(e);
var y = m_mouse.get_coords_y(e);
var obj = m_scs.pick_object(x, y);
if (obj) {
switch(m_scs.get_object_name(obj)) {
case "lcd1.000":
onClickW();
m_scs.apply_outline_anim(obj, 2, 2, 1);
lcd0out();
break;
case "lcd1.001":
onClickW();
m_scs.apply_outline_anim(obj, 2, 2, 1);
lcd1out();
break;
case "lcd1.002":
onClickB();
m_scs.apply_outline_anim(obj, 2, 2, 1);
lcd2out();
break;
case "lcd1.003":
onClickT();
lcd3out();
//m_scs.apply_outline_anim(obj, 2, 2, 1);
break;
default:
return;
}


и ВТОРОЕ ( ПК)

с выводом шрифта иконками, прокаитило только с одним шрифтом а мой второй хоть расшибись не выводит и все (
скорее всего шрифты может как то по разному закодированы .. хотя я пробовал по всякому и даже программой шрифтовой их сравнивал . единственное существенное отличие это то, что в одном стоит фиксированный признак что это ЛИГРАТУРНЫЙ шрифт ( и он выводится нормально) а вдругом написано АВТО (( ..
в общем теперь даже не знаю что и делать, хотя при выводе через CSS и HTML без канваса все ок и одинаково без проблем выводит

Третье ( НА УСТРОЙСТВЕ)

На устройстве выявилось странное поведение вывода текстур на 3Д объекте
ОНИ ВЫВОДЯТСЯ ПОВЕРХ ВСЕХ ЭЛЕМЕНТОВ СЦЕНЫ !!!
даже поверх тех которые по факту сверху ! т.е. выводятся насквозь!
( хотя в браузере десктопном все було ок)

Четверое ( НА УСТРОЙСТВЕ)

Лигратурные шрифты устройство почему то решило выводить КИАТЙСКИМИ ИЕРОГЛИФАМИ!
вместо лигратур (((( ( хотя тот шрифт которые не распознало так же и остается квадратиком)


Пятое ( На устройстве)

Тапы и клики срабатывают как то "очень туго" не могу понять почему так ..
а если не поставить в кейсы АЛЕРТЫ то вообще все что в кейсе проскакивает мимо (
как так?

ДОПОЛНЮ, нашел проблему т.к. вначале тестировал на ПК браузере оставил два вызова и ТАП и МАУС и в итоге видимо это и мешало.. закоментил


//canvas0.addEventListener("mousedown", main_canvas_clicked_cb);
canvas0.addEventListener("touchstart", main_canvas_clicked_cb);

но по прежнему тугость вызова осталась, но срабатывает теперь лучше

Шестое на ПК,

т.к. на устройстве не могу посмотреть вывод

после згрузки в консоли вижу такие ошибки, может кто прокоментировать?

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/0x1401b4w.min.js:572:53
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/0x1401b4w.min.js:572:53
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/0x1401b4w.min.js:572:53
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


19 September 2016 20:34
Ответ на сообщение пользователя Кирилл
У меня работало так:
1. Настроил эффект в блендере
2. Скормил объект этой функции
Потом можно через set_timeout в модуле time или нативным setTimeout() вырубить outline через секунду.

сейчас еще раз свой код проверю чтоб не проскакивало мимо кадра.

Но в самом начале я предполагал, что это самое выделение достаточно включить в блендере и движок сам все будет активировать и собственно функция выделения объекта будет реализована сразу через АПИ и соответственно после тыкания в объект будет возможно срабатывание калбэка или события итд..

может все-же надо так сделать в апи и движке?
19 September 2016 11:51
Ответ на сообщение пользователя Кирилл
А если отключить ограничение fps и простестить на десктопе?


да проверил (( не помогло ..

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

изучение примеров не дало четкого ответа к сожалению. собственно согласно примерам все и делал.
но разница в том что мне не нужно подсвечивать объект при перетаскивании или еще как . а только подсвечивать кликнутый или тапнутый объект например 1 сек или текущий кадр + 1 сек … до сл. рефреша. а такого вроде сценария я вообще не нашел
17 September 2016 18:30
Ответ на сообщение пользователя Кирилл
В отладчике выбери режим выбора объекта. Щелкни по канвасу, увидешь, на какой dom элемент попадаешь
да спасибо, так и сделал но уже нашел чуть ранее, что не тот канвас все-же использовал.. по индексу он был ниже ну и не кликался..

но проблема не выделения объекта осталась..
все сделал как в примерах и настройки сцены и объекта итд… но подсветки контура объеекта нет(
может все дело в том что я ограничил 1ФПС ?

кто что думает?