User posts DENIS
05 March 2018 15:25
Ответ на сообщение пользователя Theodore MastikhinБудем ждать, можно много придумать как использовать эти свойства в динамическом коде.
Нет, пока что других примеров в документации нет. Но мы планируем добавить примеры использования этого и других методов; возможно, они появятся уже в следующем релизе.
1. Тут возник еще один вопрос, на сколько я вижу(искал в API) нет возможности изменить активную камеру в сцене с несколькими камерами?
2. Не могу найти способ создать ортогональную камеру или изменить текущую на ортогональную. может не нашел метод, подскажите.
Спаисбо.
Denis
02 March 2018 03:26
Вопрос по "get_meta_tags(obj)"
а кроме как тут(ссылка) есть еще где то примеры и описание ?
https://www.blend4web.com/api_doc/module-objects.html#.get_meta_tags
и https://www.blend4web.com/api_doc/module-objects.html#~ObjectMetaTags
PS все работает.. но если есть доп инфа будет полезно.
а кроме как тут(ссылка) есть еще где то примеры и описание ?
https://www.blend4web.com/api_doc/module-objects.html#.get_meta_tags
и https://www.blend4web.com/api_doc/module-objects.html#~ObjectMetaTags
PS все работает.. но если есть доп инфа будет полезно.
Denis
26 February 2018 16:38
Эта функция помечена как устаревшая, поскольку она загружает картинку каждый раз без кэширования. Взамен пользователю предлагается использовать Image в качестве некоего кеша, над которым пользователь имеет полный контроль.
….
Промисы сейчас не используются, пока что используются более низкоуровневые функции JS.
Насчет коллбэка решим.
И про кеш и про замену картинки без ожидания было бы очень хорошо.. т.к. представьте загрузку 100 мб картинок пред мешем ))) а потом опять и так сколкьо угодно раз.. картинки то могут повторяться а могут и нет.. и кеш тут не помешает сейчас рабоатет не всегда быстро как хотелось бы.
______________________________
Вчера обнаружен еше один "99% баг" : при загрузке данных в сцену несколькими этапами (объектов) и у этих объектов есть свойсво "render_above_all" включено то объекты не из первой загрузки просто не отображаются в сцене ни при каких условиях ! демонстрацию пока сделать тяжело т.к. надо выкусить из кода именно это место ..
возможно вы знаете о этой проблеме ?
Denis
26 February 2018 15:21
Действительно колбэк при replace image не работает. Это баг.
ну значит, что я все верно подметил , жаль, что времени много потерялось.
про ваш пример: это пример удобен, когда заранее все текстуры, которые нужны, известны и они уже есть. А например в моем случае - текстура нужная определяется в момент работы с приложением и нужно ее поднимать и менять в процессе работы сцены, состоящей ни разных частей догружаемых позже.
В данный момент старый метод "change_image" с ожиданием через калбэк работает ( он вроде как в устаревших уже числится… может его стоит оставить ? ) кроме того, тот ваш новый метод лишь навеска над старым и как я понимаю, Возможно его стоит переделать от начала и до конца заново. Я детально не смотрел, что там делается в коде, но не увидел тех самых "промисов" о которых говорили выше и вполне вероятно калбек тот все же нужен для внешнего контроля подгрузки или сделать это контроль внутри метода.
Denis
25 February 2018 13:49
23 February 2018 12:58
ОБНОВЛЕНИЕ:
Ура! текстуры наконец заменяются, и все же - метод с "вызовом калбека для ожидания картинки" оказался самым рабочим.
обнаружил, что в материале были такие настройки, которые не позволили увидеть изменения. - Это в ПЛЮСЕ
А вот что в минусе, и по прежнему нуждается в объяснении:
Пришлось использовать "устаревший" метод "change_image" вместо документированного "replace_image" (с руганью в консоли) … т.к. последний ни при каких обстоятельствах не посещает свой калбек и все эти ошибки были как раз по его поводу.
задействовал старый метод, и колбек заработал "change_image(obj, text_name, image_path, callbackopt)"
, но картина все равно не заменяется .. хотя и загрузка картинки происходит и метод отрабатывает..
уже не знаю куда и копать измененный кусок кода:
Ура! текстуры наконец заменяются, и все же - метод с "вызовом калбека для ожидания картинки" оказался самым рабочим.
обнаружил, что в материале были такие настройки, которые не позволили увидеть изменения. - Это в ПЛЮСЕ
А вот что в минусе, и по прежнему нуждается в объяснении:
Пришлось использовать "устаревший" метод "change_image" вместо документированного "replace_image" (с руганью в консоли) … т.к. последний ни при каких обстоятельствах не посещает свой калбек и все эти ошибки были как раз по его поводу.
Denis
22 February 2018 05:39
обнаружил две перекликающихся темы на форуме :
https://www.blend4web.com/ru/forums/topic/23/?page=2#post-20783
и вторая про "много картинок в загрузке для замены" ..
и примеры кода , в котором используется старый метод замены картинки!!!
https://www.blend4web.com/apps/code_snippets/code_snippets.html?scene=change_image
создал измененный код , добавив простой колбек с флагом ожидания загрузки картинки .
и пробовал так же его использовать с "replace_image(obj, text_name, image, callback)"
- но как я и сказал выше новый метод полностью игнорирует вывод в колбек !
задействовал старый метод, и колбек заработал "change_image(obj, text_name, image_path, callbackopt)"
, но картина все равно не заменяется .. хотя и загрузка картинки происходит и метод отрабатывает..
уже не знаю куда и копать измененный кусок кода:
картинка все так же не заменяется …
самое неприятное, что ошибок напрмер в ФФ в консоли нет ! да и в Хроме ошибка(ки) исчезли,
кроме конечно этого "B4W ERROR: change_image() is deprecated, use replace_image() instead."
но и в примере так, но работает пока. кроме того внутри в движке то так старый метод и используется поверх нового!
https://www.blend4web.com/ru/forums/topic/23/?page=2#post-20783
и вторая про "много картинок в загрузке для замены" ..
и примеры кода , в котором используется старый метод замены картинки!!!
https://www.blend4web.com/apps/code_snippets/code_snippets.html?scene=change_image
создал измененный код , добавив простой колбек с флагом ожидания загрузки картинки .
и пробовал так же его использовать с "replace_image(obj, text_name, image, callback)"
- но как я и сказал выше новый метод полностью игнорирует вывод в колбек !
задействовал старый метод, и колбек заработал "change_image(obj, text_name, image_path, callbackopt)"
, но картина все равно не заменяется .. хотя и загрузка картинки происходит и метод отрабатывает..
уже не знаю куда и копать измененный кусок кода:
function change_img_cb() {
console.log("_wait_for_image_loading = "+_wait_for_image_loading );
_wait_for_image_loading = false;
}
var _flag = false;
..........
_wait_for_image_loading = true;
if (_flag) {
//m_tex.replace_image(obj, text_name, image1, change_img_cb);
m_tex.change_image(obj, text_name, image1.src, change_img_cb);
} else {
//m_tex.replace_image(obj, text_name, image2, change_img_cb);
m_tex.change_image(obj, text_name, image2.src, change_img_cb);
}
_flag = !_flag;
........
картинка все так же не заменяется …
самое неприятное, что ошибок напрмер в ФФ в консоли нет ! да и в Хроме ошибка(ки) исчезли,
кроме конечно этого "B4W ERROR: change_image() is deprecated, use replace_image() instead."
но и в примере так, но работает пока. кроме того внутри в движке то так старый метод и используется поверх нового!
Denis
22 February 2018 03:44
21 February 2018 19:00
Оставил пока все как последовательный вызов "посткалбеков " и в последнем инициализирую все элементы по ИД сцен получеными на этапе загрузки.. вроде все ок.
Но тут новая странность, с заменой текстуры:
пробую в ФФоксе и в Хроме .
в ФФоксе текстура не меняется и ошибок нет в консоли ( дебаг режим включен)
в Хроме текстура не меняется, но ошибки в консоли есть:
(картинка есть по этой ссылке, элемент работает, меши все загружаются.. но замена текстуры не срабатывает и старый ваниант уже не работает "b4w.js:202 B4W ERROR: change_image() is deprecated, use replace_image() instead." )
https://www.blend4web.com/api_doc/module-textures.html#.replace_image
LOG image.src = http://myapp.com/app//assets/var/v1/L1.jpg
LOG image = [object HTMLImageElement]
b4w.js:27228 WebGL: INVALID_VALUE: texImage2D: no image
update_texture @ b4w.js:27228
Int_textures.exports.change_image @ b4w.js:28142
Textures.exports.replace_image @ b4w.js:115902
(anonymous) @ myapp.js:385
dispatch @ jquery.min.js:2
y.handle @ jquery.min.js:2
myapp.php?:1 [.Offscreen-For-WebGL-0000022FA5691490]GL ERROR :GL_INVALID_OPERATION : glGenerateMipmap: Can not generate mips
….. итд… там уже целый список
Код почти такой как в описани АПИ
что может быть то?
ДОПОЛНЮ:
вываливается тут
как раз в ЭЛЬСЕ последнем :
b4w.js:27228 WebGL: INVALID_VALUE: texImage2D: no image
Но тут новая странность, с заменой текстуры:
пробую в ФФоксе и в Хроме .
в ФФоксе текстура не меняется и ошибок нет в консоли ( дебаг режим включен)
в Хроме текстура не меняется, но ошибки в консоли есть:
(картинка есть по этой ссылке, элемент работает, меши все загружаются.. но замена текстуры не срабатывает и старый ваниант уже не работает "b4w.js:202 B4W ERROR: change_image() is deprecated, use replace_image() instead." )
https://www.blend4web.com/api_doc/module-textures.html#.replace_image
LOG image.src = http://myapp.com/app//assets/var/v1/L1.jpg
LOG image = [object HTMLImageElement]
b4w.js:27228 WebGL: INVALID_VALUE: texImage2D: no image
update_texture @ b4w.js:27228
Int_textures.exports.change_image @ b4w.js:28142
Textures.exports.replace_image @ b4w.js:115902
(anonymous) @ myapp.js:385
dispatch @ jquery.min.js:2
y.handle @ jquery.min.js:2
myapp.php?:1 [.Offscreen-For-WebGL-0000022FA5691490]GL ERROR :GL_INVALID_OPERATION : glGenerateMipmap: Can not generate mips
….. итд… там уже целый список
Код почти такой как в описани АПИ
var image = new Image();
var text_name = 'ao';
image.src = APP_ASSETS_PATH+"L1.jpg";
m_tex.replace_image(l1, text_name, image);
что может быть то?
ДОПОЛНЮ:
вываливается тут
else if (!cfg_def.webgl2 && (__WEBPACK_IMPORTED_MODULE_9__util_js__["L" /* check_npot */](texture.width)
|| __WEBPACK_IMPORTED_MODULE_9__util_js__["L" /* check_npot */](texture.height))) {
draw_resized_image(texture, draw_data, width, height, false);
texture.need_resize = true;
} else
_gl.texImage2D(w_target, 0, _gl.RGBA, _gl.RGBA, _gl.UNSIGNED_BYTE, draw_data);
как раз в ЭЛЬСЕ последнем :
b4w.js:27228 WebGL: INVALID_VALUE: texImage2D: no image
Denis
20 February 2018 13:43
не составляет труда еще на этапе постзагрузки контролировать ВСЕ объекты в каждой подгружаемой сцене.
спасибо, а в описани API она есть?
про присвоения на этапе загрузки это не всегда удобно и возможно, как раз хотелось сделать такой "универсальный" кусок кода.. т.к. сцены(части сцен) разные могут быть , а вот не получается … от этого и все эти вопросы.
Denis