User posts Dmitriy Pelevin
08 November 2017 16:01
24 October 2017 18:13
Задался целью поиска объектов в сцене по группе. Уже задавал этот вопрос на конференции Евгению, понял, что существуют только дубльгруппы для наследуемых объектов, в общем это не то.
Предложение состоит в добавлении обработки обычных групп из блендера в экспорт JSON и дальнейшее разбиение объектов на группы в самом модуле object.
Если кто понял, можете описать возможные проблемы такого подхода? Я попробую сам написать весь этот функционал, но будет обидно, когда это всё похерится при следующем обновлении….
Предложение состоит в добавлении обработки обычных групп из блендера в экспорт JSON и дальнейшее разбиение объектов на группы в самом модуле object.
Если кто понял, можете описать возможные проблемы такого подхода? Я попробую сам написать весь этот функционал, но будет обидно, когда это всё похерится при следующем обновлении….
24 October 2017 13:32
В общем сдублировал я кучу кода из модуля object, который относится к наследованию материала (не все функции вынесены в extend, был вынужден…)
Часть методов переписал под чисто сбор данных (собираю отдельный объект материала в JS, который хранит в себе название, массив основных батчей (не совсем понимаю что это), сам bpy_mat (как расшифровывается bpy?) и список текстур), остальную на работу с собранными данными.
Не понял вообще манёвров по сохранению old_link_to_obj и old_bpy_mat_name. но оставил работу с первым, а вот c именем я не стал дублировать, т.к. не понял зачем это вообще надо…
В общем с первого раза всё запустилось и работает. Теперь у меня есть модуль, который позволяет сохранять старые материалы в темп переменной и восстанавливать их для объектов. Думаю, проблемы меня ждут в будущем, особенно с поддержкой обновлений, но, прорвёмся.
Часть методов переписал под чисто сбор данных (собираю отдельный объект материала в JS, который хранит в себе название, массив основных батчей (не совсем понимаю что это), сам bpy_mat (как расшифровывается bpy?) и список текстур), остальную на работу с собранными данными.
Не понял вообще манёвров по сохранению old_link_to_obj и old_bpy_mat_name. но оставил работу с первым, а вот c именем я не стал дублировать, т.к. не понял зачем это вообще надо…
В общем с первого раза всё запустилось и работает. Теперь у меня есть модуль, который позволяет сохранять старые материалы в темп переменной и восстанавливать их для объектов. Думаю, проблемы меня ждут в будущем, особенно с поддержкой обновлений, но, прорвёмся.
24 October 2017 12:08
Довольно глубокий ответ, спасибо.
В целом, того что есть достаточно, но задача очень простая, а решать её добавлением тонны материалов (дополнительных) в бленд файл не хочется.
Да, есть пустой объект с материалами (библиотека). Есть конечные объекты, которые наследуют материалы из либы. Но в какой-то момент нужно для конечного материала изменить его материал на другой, при этом иметь возможность потом ему вернуть старый. Что-то типа включения ghost-mode.
В общем я тогда, наверно, сделаю для себя модуль, в котором буду эмулировать всё вышеописанное, а вот про сложность манипулирования, я на самом деле хотел услышать, что происходит с рендером при смене материала. Про код то мне понятно)
В целом, того что есть достаточно, но задача очень простая, а решать её добавлением тонны материалов (дополнительных) в бленд файл не хочется.
Да, есть пустой объект с материалами (библиотека). Есть конечные объекты, которые наследуют материалы из либы. Но в какой-то момент нужно для конечного материала изменить его материал на другой, при этом иметь возможность потом ему вернуть старый. Что-то типа включения ghost-mode.
В общем я тогда, наверно, сделаю для себя модуль, в котором буду эмулировать всё вышеописанное, а вот про сложность манипулирования, я на самом деле хотел услышать, что происходит с рендером при смене материала. Про код то мне понятно)
21 October 2017 02:49
Если можно, расскажите в чём сложность манипулировать материалами, не привязанными к объекту (чтобы не использовать наследование материала, а просто назначение его из некой виртуальной библиотеки).
Я разобрал функцию передачи материала от объекта к объекты, происходит много интересного, но не совсем понятно зачем. Я думаю, тот кто это писал сможет наглядно объяснить все тонкости передачи материалов =)
Я разобрал функцию передачи материала от объекта к объекты, происходит много интересного, но не совсем понятно зачем. Я думаю, тот кто это писал сможет наглядно объяснить все тонкости передачи материалов =)
20 October 2017 19:43
Здрасьте, провозился я пол дня с этой самой inherit_material, что хочу спросить:
1) Её можно использовать, только если объект obj_to (к которому хотим применить материал) уже содержит какой-то материал и при это надо именно указать его имя?
2) Есть ли возможность программно создать какой-то пустой материал у объекта, чтобы потом применить к нему метод inherit_material?
3) Если у объекта в блендере создано несколько материалов, можно ли их переключать?
4) Есть ли возможность сохранять старый материал у объекта, чтобы потом его вернуть?
1) Её можно использовать, только если объект obj_to (к которому хотим применить материал) уже содержит какой-то материал и при это надо именно указать его имя?
2) Есть ли возможность программно создать какой-то пустой материал у объекта, чтобы потом применить к нему метод inherit_material?
3) Если у объекта в блендере создано несколько материалов, можно ли их переключать?
4) Есть ли возможность сохранять старый материал у объекта, чтобы потом его вернуть?
20 October 2017 16:21
17 October 2017 18:17
17 October 2017 17:11
Откуда-то мне кажется, что если сцена сборная и состоит из нескольких подгружаемых в общую сцен, то логичнее рисовать их с использованием общей библиотеки материалов, линкуя материалы в каждую сцену из библиотеки.
Тем самым при сборке .json файлов и при последующем рендеринге система не будет по несколько раз рендерить одинаковые материалы, созданные в разных (подгружаемых) файлах, а будет работать с одним общим материалом.
Вроде об этом я разговаривал на конференции с кем-то, но точно уже не помню.
Попробовали воспроизвести демо, где создали пару файлов с своими личными материалами и пару с прилинкованными, загрузили их в разные проекты с догрузкой .json в сцены, включили HUD для анализа, но не заметили отличий…. Т.е. не совсем понятно, какую часть рендеринга материала оптимизирует такой подход?
И второй вопрос, если библиотека материалов находится ВНЕ проекта + также ВНЕ проекта лежат текстурки и всё что связано с библиотекой и будет использоваться после линковки, то плагин или проджект менеджер не умеют собирать все используемые файлы автоматически в папку assets?
Тем самым при сборке .json файлов и при последующем рендеринге система не будет по несколько раз рендерить одинаковые материалы, созданные в разных (подгружаемых) файлах, а будет работать с одним общим материалом.
Вроде об этом я разговаривал на конференции с кем-то, но точно уже не помню.
Попробовали воспроизвести демо, где создали пару файлов с своими личными материалами и пару с прилинкованными, загрузили их в разные проекты с догрузкой .json в сцены, включили HUD для анализа, но не заметили отличий…. Т.е. не совсем понятно, какую часть рендеринга материала оптимизирует такой подход?
И второй вопрос, если библиотека материалов находится ВНЕ проекта + также ВНЕ проекта лежат текстурки и всё что связано с библиотекой и будет использоваться после линковки, то плагин или проджект менеджер не умеют собирать все используемые файлы автоматически в папку assets?