User posts DENIS
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.
Проблема наблюдается на встроенном в Тизен системном браузере(часть ОС), это не гугл хром итд.. у енго нет названия к сожалению и он системный.
Denis
28 September 2016 14:04
27 September 2016 15:53
Ответ на сообщение пользователя Семенцов Роман
Да, для старта outline-эффекта необходимо отрендерить кад заново.
….. Насколько я понимаю, внутри GPU MALI400MP.
Я и иконки эти с шрифтами и сам код которым вывожу ранее успешно использовал на 2Д канвасе
но выводил через инструкции CSS все отлично выводилось , а тут такая не задача …
вот на 2Д как оно работало:
РЕНДЕР АБОВ АЛЛ не установлен ( проверил)
типик (
Denis
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. ФФокс тестовый когда значки нормальные кроме того шрифта что с значками погоды ( правый верхний)
вот тут видно что текстуры в ФФ отображаются на правильном месте
под стрелками!
Denis
24 September 2016 01:59
23 September 2016 10:05
Ответ на сообщение пользователя Семенцов Роман
Добрый день.
Я немного не в теме беседы, уж очень активно вы тут обсуждаете
можно узнать, какой девай вы имеете ввиду?
Firefox?
У объекта в блендере стоит галочка Outlining?
да ФФ х64
Галочку проверю конечно, я то много эксперементировал, мог для теста и отключить ((
Смарт часы это на Тизене , браузер встроенный вебкит вроде как совместимый .
____________ ОБНОВЛЕНИЕ: _____________
верно подмечено.. я пока игрался с настройками отключил ОУТЛИНИНГ у остальных плейнов..
спаисбо за направление в нужное русло..
а еще интерсно , что после программного обновления ( замена на другую из того же шрифта)
иконка в одном из шрифтов стала отображаться ))) .. буду дальше посмотреть почему такое может быть..
самое интерсное что все выдодится одной и то же функцией .. просто заменил в переменной код .
и при инициализации код начальный грузится из VAR
Denis
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
Denis
19 September 2016 20:34
Ответ на сообщение пользователя Кирилл
У меня работало так:
1. Настроил эффект в блендере
2. Скормил объект этой функции
Потом можно через set_timeout в модуле time или нативным setTimeout() вырубить outline через секунду.
сейчас еще раз свой код проверю чтоб не проскакивало мимо кадра.
Но в самом начале я предполагал, что это самое выделение достаточно включить в блендере и движок сам все будет активировать и собственно функция выделения объекта будет реализована сразу через АПИ и соответственно после тыкания в объект будет возможно срабатывание калбэка или события итд..
может все-же надо так сделать в апи и движке?
Denis
19 September 2016 11:51
Ответ на сообщение пользователя Кирилл
А если отключить ограничение fps и простестить на десктопе?
да проверил (( не помогло ..
просто в документации не нашел четкого ответа в каких случаях есть подсветка и на что влияют те параметры задающие время подсветки и ее тип в блендере.
и достаточно ли установок в блндере или обязательно надо в коде прописывать манипуляции с подсветкой объекта.
и может в каком то случае она не выводится итд..
изучение примеров не дало четкого ответа к сожалению. собственно согласно примерам все и делал.
но разница в том что мне не нужно подсвечивать объект при перетаскивании или еще как . а только подсвечивать кликнутый или тапнутый объект например 1 сек или текущий кадр + 1 сек … до сл. рефреша. а такого вроде сценария я вообще не нашел
Denis
17 September 2016 18:30
Ответ на сообщение пользователя Кириллда спасибо, так и сделал но уже нашел чуть ранее, что не тот канвас все-же использовал.. по индексу он был ниже ну и не кликался..
В отладчике выбери режим выбора объекта. Щелкни по канвасу, увидешь, на какой dom элемент попадаешь
но проблема не выделения объекта осталась..
все сделал как в примерах и настройки сцены и объекта итд… но подсветки контура объеекта нет(
может все дело в том что я ограничил 1ФПС ?
кто что думает?
Denis