Имеется задача создать конструктор для товаров, в котором пользователи могут менять некоторые визуальные характеристики. Например, нанести свой логотип на флешку или телефонный чехол.
В течение дня я изучал three.js и решил, что для этого лучше всего поступить следующим образом:
- 3д-художник в 3d редакторе (я пробовал blender) рисует цельный объект. Например флешку.
- Разбивает объект на составные меши. К примеру, коннектор флешки имеет постоянную металлическую текстуру, и она не будет меняться, а основная часть будет меняться пользователем.
- Наносит на постоянные элементы дефолтные материалы.
- Экспортирует каждую часть в отдельный json файл.
- На бэкенде все json-файлы импортируются на сцену. При экспорте blender сохраняет координаты объекта, поэтому в результате импорта всех частей визуально получается цельная флешка/чехол/что-то еще.
- В json-ах можно выставить какие-то флаги отдельным мешам, на основе которых GUI-составляющая создаст необходимые кнопки для редактирования - загрузить текстуру, сместить текстуру и т. д.
Это мой первый взгляд на проблему, буду рад, если предложите свой вариант. Задача стоит - избежать необходимости программной отрисовки, потому что для каждого вида флешек (а их может быть много) мы не можем писать код для накладывания дефолтных текстур и т. д. Максимально возможная работа должна быть выполнена в редакторе.