отображение Blend4Web в браузере
17 июля 2015 18:26
Добрый день.
Вы можете использовать любое изображения для отрисовки в canvas-текстуру. Сам canvas создается с размерами, кратными степени 2. Поэтому нет необходимости изменять размеры изображений
Для рисования в canvas-текстуре объекту-владельцу текстуры не обязательно быть динамическим.
Я же могу подгружать внешнее изображение размерами сторон 2 в степени n, при условии, что текстура canvas и элемент является динамическим?
Вы можете использовать любое изображения для отрисовки в canvas-текстуру. Сам canvas создается с размерами, кратными степени 2. Поэтому нет необходимости изменять размеры изображений
Для рисования в canvas-текстуре объекту-владельцу текстуры не обязательно быть динамическим.
22 января 2018 03:02
Ошибка смены canvas текстуры.
Версия 17.6.0
При загрузке приложения нормально загружаются.
При принудительной смене:
Модуль textures
change_image() ругается матом:
[.Offscreen-For-WebGL-0x561410d95c30]RENDER WARNING: texture bound to texture unit 5 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.
Загружаю как обычно:
Меняю вот так:
Версия 17.6.0
При загрузке приложения нормально загружаются.
При принудительной смене:
Модуль textures
change_image() ругается матом:
[.Offscreen-For-WebGL-0x561410d95c30]RENDER WARNING: texture bound to texture unit 5 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.
- Текстуры в степени "двойки" (1024х1024)
При загрузке ложатся отлично
Загружаю как обычно:
//CANVAS TEXTURES
var obj = m_scs.get_object_by_name("tub");
var ctx_image = m_tex.get_canvas_ctx(obj, "ALPHA_EXTEND");
var img = new Image();
img.src = "textures/canvas/rombic.png";
img.onload = function() {
ctx_image.drawImage(img, 0, 0, ctx_image.canvas.width,
ctx_image.canvas.height);
m_tex.update_canvas_ctx(obj, "ALPHA_EXTEND"); // обновления текстуры
console.log("Текстуры ALPHA_EXTEND обновились.");
}//конец img.onload
Меняю вот так:
var m_scs = b4w.require("scenes");
var m_tex = b4w.require("textures");
var Obj = m_scs.get_object_by_name('tub');
...
m_tex.change_image(Obj, "ALPHA_EXTEND", "textures/canvas/blank_alpha.png");
Коплю деньги на коммерческий B4W.
22 февраля 2018 03:44
22 февраля 2018 11:34
нет случаем "лекарства" уже?Есть! Я делаю теперь вот так:
var m_scs = b4w.require("scenes");
var m_mat = b4w.require("material");
var m_tex = b4w.require("textures");
var Obj = m_scs.get_object_by_name('tub');
var ctx_image = m_tex.get_canvas_ctx(Obj, "ALPHA_REPEATE"); //"ALPHA_REPEATE" - имя canvas текстуры
var img = new Image()
img.src = "textures/canvas/blank_alpha.png";
img.onload = function(){
ctx_image.clearRect(0, 0, ctx_image.canvas.width, ctx_image.canvas.height);
ctx_image.drawImage(img, 0, 0, ctx_image.canvas.width, ctx_image.canvas.height);
m_tex.update_canvas_ctx(Obj, "ALPHA_REPEATE");
}
Всё это запихиваю в функцию.
Коплю деньги на коммерческий B4W.