Форум

отображение Blend4Web в браузере

17 июля 2015 18:26
Добрый день.

Я же могу подгружать внешнее изображение размерами сторон 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.



    Текстуры в степени "двойки" (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
При принудительной смене:
Модуль textures
change_image() ругается матом:


+1 получил примено то же самое

https://www.blend4web.com/ru/forums/post/20782/

нет случаем "лекарства" уже?
Денис
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.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.