Форум

Как поменять материал через API?

11 декабря 2016 11:05
Здравствуйте, подскажите, пожалуйста. Нужно заменить один материал другим используя API, как можно это сделать?
11 декабря 2016 11:16
https://www.blend4web.com/ru/forums/topic/462/?page=2 почитал в теме, но получается материал должен быть на сцене на другом объекте. А как-то из другого места его брать можно?
11 декабря 2016 11:56
Делаю
m_mat.inherit_material(cube, "Material", cube1, "Material.001");
функция срабатывает, но ничего не меняется. Помогите, разобраться
11 декабря 2016 13:40
Ответ на сообщение пользователя platedz
Делаю
m_mat.inherit_material(cube, "Material", cube1, "Material.001");
функция срабатывает, но ничего не меняется. Помогите, разобраться
У меня сработало всё стабильно. Смотрите в консоль, может там всё же есть какая-нить красная строчка..
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
11 декабря 2016 14:19
вот эта если только

b4w.min.js:2556 Uncaught TypeError: h is not a function(…)

но при выполнении функции

m_mat.inherit_material(cube1, "Material.002", cube, "Material");
ошибок нету
11 декабря 2016 15:16
вопрос к разработчикам: раз материал не может существовать без объекта, почему бы не завести какой то системный объект хранитель материалов, которому можно будет передать все материалы которые будут динамически востребованы в сцене?
Денис
11 декабря 2016 15:23
Ответ на сообщение пользователя platedz
http://avtodot.ru/1/222.html
ошибок нету
Ну как нету, особенно, если понажимать
b4w.min.js:396 B4W WARN: Not enough varyings, disable shadows on blend objectsa.warn @ b4w.min.js:396
b4w.min.js:2556 Uncaught TypeError: h is not a function()
222.html:33 Uncaught ReferenceError: blue is not defined()
222.html:34 Uncaught ReferenceError: red is not defined()
222.html:35 Uncaught ReferenceError: green is not defined()
222.html:35 Uncaught ReferenceError: green is not defined()

Приложил пример, где всё у меня работает. test_mat_change.zip, импортить через менеджер проектов
Ответ на сообщение пользователя ДЕНИС
вопрос к разработчикам: раз материал не может существовать без объекта, почему бы не завести какой то системный объект хранитель материалов, которому можно будет передать все материалы которые будут динамически востребованы в сцене?
Мне кажется это лишний функциоал, который только повысит вес движка… Если только в примечаниях к докам написать пометку/рекомендацию, что можно создать меш пустышку и на него повесить будущие материалы…
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
11 декабря 2016 16:14
Да у Вас все работает. Только я смотрю у Вас материал не через ноды сделан? Я свой материал делал через ноды.
11 декабря 2016 16:19
Вот сделал цвет материала без нодов и материал поменялся
11 декабря 2016 16:36
Еще раз спасибо Вам Кирилл. Пока все получается благодаря Вам.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.