Форум

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

16 сентября 2016 08:42 #11840
Ответ на сообщение пользователя ДЕНИС
теперь вопрос по выбираемым объектам.. не могу найти в документации как в JS отловить событик елика именно по этому оъекту в сцене и что он подсветился обводкой.. выставил в блендере все парасеты и в настр. сцены тоже.. но в зарущеной через json сцене в браузере клики по оъекту реакции не дают… что не так делаю подскажите
Тут, начиная с заголовка "Интерактивность: перемещение"
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
16 сентября 2016 23:19 #11879
Ответ на сообщение пользователя Кирилл
Тут, начиная с заголовка "Интерактивность: перемещение"

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

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

такие эвенты , там же и где все остальные которые срабатывают

function init_cb(canvas_elem, success) {
….
canvas_elem.addEventListener("mousedown", alert("xoxoxo"));
canvas_elem.addEventListener("touchstart", alert("xaxaxa"));

PS тестирую пока в ФФоксе

может есть какие мысли почему не срабатывает?
Денис
16 сентября 2016 23:35 #11880
В отладчике выбери режим выбора объекта. Щелкни по канвасу, увидешь, на какой dom элемент попадаешь
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
17 сентября 2016 18:30 #11885
Ответ на сообщение пользователя Кирилл
В отладчике выбери режим выбора объекта. Щелкни по канвасу, увидешь, на какой dom элемент попадаешь
да спасибо, так и сделал но уже нашел чуть ранее, что не тот канвас все-же использовал.. по индексу он был ниже ну и не кликался..

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

кто что думает?
Денис
18 сентября 2016 21:52 #11887
кто что думает?
А если отключить ограничение fps и простестить на десктопе?
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
19 сентября 2016 11:51 #11891
Ответ на сообщение пользователя Кирилл
А если отключить ограничение fps и простестить на десктопе?


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

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

изучение примеров не дало четкого ответа к сожалению. собственно согласно примерам все и делал.
но разница в том что мне не нужно подсвечивать объект при перетаскивании или еще как . а только подсвечивать кликнутый или тапнутый объект например 1 сек или текущий кадр + 1 сек … до сл. рефреша. а такого вроде сценария я вообще не нашел
Денис
19 сентября 2016 14:45 #11894
У меня работало так:
1. Настроил эффект в блендере
2. Скормил объект этой функции

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

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

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

может все-же надо так сделать в апи и движке?
Денис
22 сентября 2016 17:25 #12026
Ответ на сообщение пользователя Кирилл
У меня работало так:
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


Денис
23 сентября 2016 09:48 #12035
Добрый день.

Я немного не в теме беседы, уж очень активно вы тут обсуждаете


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

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

Можно узнать, какой девай вы имеете ввиду?


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

Firefox?
B4W ERROR: apply_outline_anim(): wrong object

У объекта в блендере стоит галочка Outlining?
Разработчик Blend4Web
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.