Форум

Сообщения, созданные пользователем Дмитрий Пелевин
08 ноября 2017 16:01
Функционала импорта нет. Но вы можете его написать для себя и никому не говорить :D
24 октября 2017 18:13
Задался целью поиска объектов в сцене по группе. Уже задавал этот вопрос на конференции Евгению, понял, что существуют только дубльгруппы для наследуемых объектов, в общем это не то.

Предложение состоит в добавлении обработки обычных групп из блендера в экспорт JSON и дальнейшее разбиение объектов на группы в самом модуле object.

Если кто понял, можете описать возможные проблемы такого подхода? Я попробую сам написать весь этот функционал, но будет обидно, когда это всё похерится при следующем обновлении….
24 октября 2017 13:32
В общем сдублировал я кучу кода из модуля object, который относится к наследованию материала (не все функции вынесены в extend, был вынужден…)

Часть методов переписал под чисто сбор данных (собираю отдельный объект материала в JS, который хранит в себе название, массив основных батчей (не совсем понимаю что это), сам bpy_mat (как расшифровывается bpy?) и список текстур), остальную на работу с собранными данными.

Не понял вообще манёвров по сохранению old_link_to_obj и old_bpy_mat_name. но оставил работу с первым, а вот c именем я не стал дублировать, т.к. не понял зачем это вообще надо…

В общем с первого раза всё запустилось и работает. Теперь у меня есть модуль, который позволяет сохранять старые материалы в темп переменной и восстанавливать их для объектов. Думаю, проблемы меня ждут в будущем, особенно с поддержкой обновлений, но, прорвёмся.
24 октября 2017 12:08
Довольно глубокий ответ, спасибо.
В целом, того что есть достаточно, но задача очень простая, а решать её добавлением тонны материалов (дополнительных) в бленд файл не хочется.

Да, есть пустой объект с материалами (библиотека). Есть конечные объекты, которые наследуют материалы из либы. Но в какой-то момент нужно для конечного материала изменить его материал на другой, при этом иметь возможность потом ему вернуть старый. Что-то типа включения ghost-mode.

В общем я тогда, наверно, сделаю для себя модуль, в котором буду эмулировать всё вышеописанное, а вот про сложность манипулирования, я на самом деле хотел услышать, что происходит с рендером при смене материала. Про код то мне понятно)
21 октября 2017 02:49
Если можно, расскажите в чём сложность манипулировать материалами, не привязанными к объекту (чтобы не использовать наследование материала, а просто назначение его из некой виртуальной библиотеки).

Я разобрал функцию передачи материала от объекта к объекты, происходит много интересного, но не совсем понятно зачем. Я думаю, тот кто это писал сможет наглядно объяснить все тонкости передачи материалов =)
20 октября 2017 19:43
Здрасьте, провозился я пол дня с этой самой inherit_material, что хочу спросить:

1) Её можно использовать, только если объект obj_to (к которому хотим применить материал) уже содержит какой-то материал и при это надо именно указать его имя?

2) Есть ли возможность программно создать какой-то пустой материал у объекта, чтобы потом применить к нему метод inherit_material?

3) Если у объекта в блендере создано несколько материалов, можно ли их переключать?

4) Есть ли возможность сохранять старый материал у объекта, чтобы потом его вернуть?
20 октября 2017 16:21
С примером туго, собирали на коленке)))

А так файл то был не один. Подход был таким, что в сцену постоянно добавляются объекты из других сцен, но все эти объекты были залинкованы от одного материала из общей библиотеки.

Я думаю, сделаем уже полную сцену и будем тогда смотреть за производительностью.
17 октября 2017 18:17
А если объект динамический, то с ним будет всё плохо?

Просто по количеству Draw Calls отличий в обоих вариантах не было вовсе. Я чего и спрашиваю…
17 октября 2017 17:11
Откуда-то мне кажется, что если сцена сборная и состоит из нескольких подгружаемых в общую сцен, то логичнее рисовать их с использованием общей библиотеки материалов, линкуя материалы в каждую сцену из библиотеки.

Тем самым при сборке .json файлов и при последующем рендеринге система не будет по несколько раз рендерить одинаковые материалы, созданные в разных (подгружаемых) файлах, а будет работать с одним общим материалом.

Вроде об этом я разговаривал на конференции с кем-то, но точно уже не помню.

Попробовали воспроизвести демо, где создали пару файлов с своими личными материалами и пару с прилинкованными, загрузили их в разные проекты с догрузкой .json в сцены, включили HUD для анализа, но не заметили отличий…. Т.е. не совсем понятно, какую часть рендеринга материала оптимизирует такой подход?

И второй вопрос, если библиотека материалов находится ВНЕ проекта + также ВНЕ проекта лежат текстурки и всё что связано с библиотекой и будет использоваться после линковки, то плагин или проджект менеджер не умеют собирать все используемые файлы автоматически в папку assets?
01 августа 2017 22:19
ПМ автоматом цепляет папки, вроде как. Нужна HTML внутри