Мотив
Я пытаюсь создать небольшое демо-приложение с использованием WebGL. Я решил использовать SceneJS, потому что он показался мне простым фреймворком и его более чем достаточно для этой цели.
Я загрузил пару моделей .blend (Amy Rose, среди прочих) и экспортировал их в файл Collada (.dae) с помощью Blender. Затем я использовал scenejs-pycollada, чтобы преобразовать их в json-модель.
Я только что потратил пару часов на то, чтобы заставить работать scenejs-pycollada конвертер. Видимо, заставить эти зависимости Python работать в Windows не так-то просто, если вы никогда раньше не использовали Python. ;)
Проблема
Но теперь я застрял (снова). Моя проблема в том, что у моделей нет ни текстур, ни материалов.
Я использовал Пример плоскости Сеймура из SceneJS. Модель, которую я преобразовал, едва заметна. Она черная и, похоже, не реагирует на освещение в сцене. Если я загружу самолет и модель вместе, я увижу, что модель загружена, потому что ее руки и ноги торчат из самолета.
Теперь я последовал нескольким руководствам, которые позволили мне экспортировать текстуру как изображение PNG. Затем я изменил имя файла текстуры в JSON модели, чтобы оно соответствовало имени файла, но это не помогает.
Поэтому я надеюсь, что кто-нибудь поможет мне найти способ экспортировать модели Blender (или другие обычные 3D модели) в формат JSON, используемый SceneJS, включая текстуры.
Любой другой способ загрузки моделей в SceneJS тоже подойдет, лишь бы он работал.
Если у кого-нибудь есть ссылка на бесплатное скачивание JSON-моделей тел/фигур, это бы помогло на данный момент, но я скорее узнаю, как это работает. :)
Я использую
Мой рабочий процесс
В Blender я экспортирую модели в файлы Collada (*.dae), а затем конвертирую их в Raw JSON с помощью scenejs-pycollada. Это дает мне файл JSON с двумя объектами в нем. Первый - сцена, второй - модель. Я сохраняю второй и помещаю его в переменную Javascript, которая используется в коде примера SceneJS. Модель заканчивается свойствами , "type": "library", "parent": "Scene"
, которые мне нужно удалить из кода, чтобы он вообще загрузился.