Как сохранить геометрию и созданный в Three.js материал в виде файла collada?

Я относительно новичок в программировании и в настоящее время пытаюсь узнать больше о three.js, библиотеке JavaScript 3D. Многие вещи относительно просты для понимания, но мне трудно спасти геометрию и ее материал.

Я построил простой куб, и изображение проецируется на него всякий раз, когда загружается картинка. как это:

$('#picture')[0].onload = function() {
    var texture = new THREE.Texture(this,null);
    texture.needsUpdate = true;
    cube.material = new THREE.MeshBasicMaterial( { map: texture } );
    render();
}

Моя цель - сохранить куб и его материал. В идеале я хотел бы сохранить его непосредственно в виде файла.dae, поскольку другая программа, в которую я хотел бы импортировать мой куб, принимает только файлы.dae.

Тем не менее, я не могу найти экспортер коллада для THREE.js. Поэтому я искал других экспортеров, которые могут создать формат файла, который я могу открыть, например, в Blender или MeshLab, и оттуда сохранить как.dae. К сожалению, я не смог сохранить геометрию и материал / изображение с этими экспортерами:

GeometryExporter.js, OBJExporter.js, SceneExporter.js

Я также изучил комбинацию OBJ и MTL. Я нашел OBJMTLLoader.js, но мне не хватает знаний, чтобы переписать OBJMTLLoader.js в OBJMTLExporter.js.

Может кто-нибудь помочь мне найти способ получить из куба и его (изображения) материала в THREE.js в файл.dae?

1 ответ

Для очень простого варианта использования, такого как этот, вы можете написать DAE вручную или, что еще проще, изменить существующий DAE на лету. Это просто XML, если вы измените расширение файла.

Создайте простой куб с материалом в Blender, экспортируйте его в DAE и используйте в качестве шаблона. Простые файлы DAE не очень трудно читать с помощью текстового редактора, вы можете найти соответствующие части и просто искать и заменять эти части в javascript (справочник по текстуре, свойства материала и UV).

Это может быть не совсем то, что вы ищете, но может работать. Не многие форматы имеют надлежащую поддержку материалов, и я сомневаюсь, что вам удастся найти работающий, полнофункциональный экспортер Three.js для такой вещи (хотя и не уверен).

Другие вопросы по тегам