2013-09-09 4 views
1

Я знаю, как экспортировать json-модель из блендера и загрузить ее с помощью THREE.JSONLoader(). Load. Я хочу построить модель с помощью Threejs в Webgl и создать json-файл из этой модели. Кто-нибудь знает, возможно ли это?Three.js get json

+0

Я думаю, вы должны смотреть на ThreeJS Редактора: http://threejs.org/editor/ –

ответ

0

Я хотел бы прежде всего понять ваш вопрос. Вы пытаетесь связать свой объект3D в JSON, как будто это был .obj? Значит, вы можете прочитать его и построить геометрию в другой момент в другом месте? Кажется, вы пытаетесь сделать обратный путь «blender -> json -> three.js», верно?

На мой взгляд, вы должны точно понимать, как модель закодирована в JSON, чтобы вы могли действовать так, как будто вы были blender, и именно тогда вы должны написать что-то вроде сериализатора, который связывает правильную информацию в JSON.

Если вы просто хотите создать JSON, который может выступать в качестве настраиваемого шаблона/модели/стандарта, что-то вроде альтернативы формату .obj или .blend, тогда вы также должны записать де-сериализатор.

Позвольте мне объяснить.

Ваша геометрия имеет вершины, грани, uvs, нормали и т. Д. Вы должны указать все эти вещи при сериализации, следуя точному порядку, а затем все готово. Как только вы узнаете парадигму, вы сможете ее прочитать и де-сериализовать.

Если я что-то не понял, скажите, пожалуйста.

До свидания

0

Да, это возможно. Для экспорта в Three.js вам понадобится плагин, установленный в блендере.

Скачать форму мерзавец: Blender exporter to Three.js

Таким образом, скачать и поставить io_three папку под ~/.config/блендер/2,69/скрипты/аддонов/папки.

Затем откройте «Файл»> «Пользовательские настройки» и перейдите на вкладку «Аддоны». Найдите Three.js и включите найденный подключаемый модуль. Теперь вы можете увидеть опцию File> Export> Three.js. На открытой вкладке убедитесь, что флажок «Личные материалы» отмечен. В противном случае у вас не будет материалов, а Three.js откажется импортировать вашу сетку.

Использование с Three.js

var mesh = null; 
function initMesh() { 
    var loader = new THREE.JSONLoader(); 
    loader.load('./marmelab-logo.json', function(geometry) { 
     mesh = new THREE.Mesh(geometry); 
     scene.add(mesh); 
    }); 
}