由用户创建的信息 stilist
09 November 2016 11:44
Вот на первый взгляд "найди отличие" получается, что не меняется картинка там, где идет одна запеченная картинка на несколько материалов с разными текстурами. Там где есть одна diffuse и одна Tex_co - это один объект, с одним материалом, по которому основная Diffuse и запеканка Tex_co.
Надо ли там как-то обновлять UV-Map может быть или перегружать канвас? Текстура то остается, меняется по ней картинка. Обязательно ли для работы change_image определять текстуры как канвас если меняется только картинка, а текстура остается?
Надо ли там как-то обновлять UV-Map может быть или перегружать канвас? Текстура то остается, меняется по ней картинка. Обязательно ли для работы change_image определять текстуры как канвас если меняется только картинка, а текстура остается?
09 November 2016 11:38
Вывод консоли при проходке по всем объектам, чтобы проверить не забыл ли я где-нибудь еще текстуры следующий:
VM21973:1 ["Diffuse.036", "Tex_co :Stair Sect"]
VM21973:1 ["Diffuse.005", "Tex_co :Roof Plane"]
VM21973:1 ["Diffuse.006", "Tex_co :Road", "Diffuse.014"]
VM21973:1 ["Tex_co :Railing"]
VM21973:1 ["Tex_co :Profiled 1", "Diffuse.002", "Diffuse.008", "Diffuse.003", "Diffuse.004"]
VM21973:1 ["Tex_co :Polyline s"]
VM21973:1 ["Tex_co :Oxford"]
VM21973:1 ["Tex_co :Minivan"]
VM21973:1 ["Tex_co :Industrial", "Diffuse.011"]
VM21973:1 ["Diffuse.014", "Tex_co :Foundation"]
VM21973:1 ["Diffuse.001", "Tex_co :Floor", "Diffuse.022", "Diffuse.038", "Diffuse.036", "Diffuse.010", "Diffuse.012", "Diffuse.027", "Diffuse.014"]
VM21973:1 ["Tex_co :Dryer", "Diffuse.043", "Diffuse.007", "Diffuse.009"]
VM21973:1 ["Tex_co :Door or 10"]
VM21973:1 ["Tex_co :Door P092"]
VM21973:1 ["Tex_co :Door P091"]
VM21973:1 ["Tex_co :Door P09"]
VM21973:1 ["Tex_co :Door P089"]
VM21973:1 ["Tex_co :Door P088"]
VM21973:1 ["Tex_co :Door P087"]
VM21973:1 ["Tex_co :Door P086"]
VM21973:1 ["Tex_co :Door P085"]
VM21973:1 ["Tex_co :Door P084"]
VM21973:1 ["Tex_co :Door P083"]
VM21973:1 ["Tex_co :Door P082"]
VM21973:1 ["Tex_co :Door P0810"]
VM21973:1 ["Tex_co :Door P081"]
VM21973:1 ["Tex_co :Door P08"]
VM21973:1 ["Tex_co :Dining Tab", "Diffuse.034", "Diffuse.008", "Diffuse", "Diffuse.035", "Diffuse.030", "Diffuse.041", "Diffuse.040", "Diffuse.031", "Diffuse.032", "Diffuse.042", "Diffuse.033", "Diffuse.017"]
VM21973:1 ["Tex_co :Diamond"]
VM21973:1 ["Tex_co :Ceiling"]
VM21973:1 ["Tex_co :Butler's@T", "Diffuse.019", "Diffuse.018", "Diffuse.034"]
VM21973:1 ["Tex_co :Base cabin", "Diffuse.007", "Diffuse.039", "Diffuse.008", "Diffuse.024", "Diffuse.013", "Diffuse.029", "Diffuse.034"]
VM21973:1 ["Tex_co :Molding"]
VM21973:1 []
VM21973:1 []
VM21973:1 []
VM21973:1 []
VM21973:1 []
VM21973:1 []
09 November 2016 11:32
Картинки меняю только у текстур с объектов без META, выбирая их через следующий код:
Нодовое дерево для двух материалов по объекту дорога, например, абсолютно схожее, но только для асфальта картинка меняется, а для цементного бордюра нет.
var objs = []
var excl_objs = ['Character']
b4w.scenes.get_all_objects().forEach(function(i){
if (i.type == 'MESH' && i.bpy_origin && !excl_objs.includes(i.name)) {
console.log(i.name);
objs[objs.length] = i
};
});
exports.objs = objs
Нодовое дерево для двух материалов по объекту дорога, например, абсолютно схожее, но только для асфальта картинка меняется, а для цементного бордюра нет.
09 November 2016 11:17
Ответ на сообщение пользователя Иван Любовников
А как конкретно делаете смену? В консоли ошибок нет?
В консоли ошибок нет. Смену делаю через приложенный код, который меняет часть пути к текстурам. Текстуры дня и ночи лежат в разных папках, но имеют одинаковые имена.
exports.change_textures = function () {
switch (ch_tex) {
case 'day':
ch_tex = 'night';
TEX_DIR = "tex_day/";
break;
case 'night':
ch_tex = 'day';
TEX_DIR = "tex_night/";
break;
};
console.log(m_amave.APP);
console.log(TEX_DIR);
console.log(m_amave.objs);
m_amave.objs.forEach(function(o){
switch (o.name) {
case 'Cube':
b4w.textures.change_image(o, 'Texture', m_amave.APP + TEX_DIR + 'img_sur.png')
break;
default:
b4w.textures.change_image(o, 'Tex_co :' + o.name, m_amave.APP + TEX_DIR + 'img_' + o.name + '.png')
break;
}
});
08 November 2016 23:17
08 November 2016 19:49
08 November 2016 19:47
require("AmAve_2100");
var ch_tex = 0
exports.change_textures = function () {
if (!ch_tex){
ch_tex = 1
}
else {ch_tex = 0}
var TEX_NIGHT_DIR = "tex_night/";
var TEX_DAY_DIR = "tex_day/";
console.log(m_amave.APP);
console.log(ch_tex)
return ch_tex
Подскажите, если я во входные парламенты функции вставляю ch_tex, то у меня при вызове функции значения не меняются, а значит туда передается значение, назначенное при определении переменной. А как это может быть, если у меня эта функция вызывается из другого файла? Или при вызове через exports читается все, что написано до определения функции - все переменные, пути и т.д. и подхватывается значение ch_tex = 0????
08 November 2016 19:29
08 November 2016 17:33
Ответ на сообщение пользователя Иван Любовников
вот так, например:var APP_ASSETS_PATH = exports.APP_ASSETS_PATH = 0;
а если у меня получилось просто exports.a = '123' и потом под console.log(m_amave.a) она воспроизводится, то есть без var - я здесь что теряю в части корректности кода или exports сама определяет тип переменной? Приведенная Вами последовательность читается справа налево или слева на право - то есть, что происходит в этой строке? заранее спасибо