Экспорт индивидуальной мебели из SweetHome3D в .obj (в блендер) - PullRequest
0 голосов
/ 28 ноября 2011

моя проблема: я использую SH3D для создания проекта http://www.sweethome3d.com/, а затем я хочу импортировать его в Blender (http://www.blender.org/). Проблема в том, что когда я использую код SH3D для экспорта, а затем импортирую вblender, я понимаю, что: то, что импортируется в blender, классифицируется как сетка, поэтому, чтобы переместить один предмет мебели, я должен выбрать все ячейки элемента.

Есть ли у вас какие-либо идеи, какЯ мог бы изменить код, чтобы сделать это? Автор объекта SH3D приведен ниже. Обратите внимание, что класс OBJWriter просто записывает строку "g" для каждой трехмерной фигуры Java независимо от того, что она исходит от предмета мебели, стены.или комнату.

http://sweethome3d.cvs.sf.net/viewvc/sweethome3d/SweetHome3D/src/com/eteks/sweethome3d/j3d/OBJWriter.java?revision=1.26&view=markup#l360

Заранее спасибо:)

Димитра

Ответы [ 2 ]

0 голосов
/ 26 февраля 2012

Единственный способ, который я нашел для этого, был

  1. Удалить всю мебель
  2. Экспортировать дом с его стенами и текстурами
  3. Удалить дом
  4. Импортируйте каждую мебель одну за другой и сохраняйте ее в файле .obj.

Но для этого в исходном коде Sweethome3d было много изменений.Если кому-то интересно, я был бы рад выслать вам файлы, которые я изменил.

0 голосов
/ 08 января 2012

'g' обозначает группу, формат файла obj допускает несколько групп, другими словами, вы можете иметь что-то вроде:

g chair1 leg1
... vertices defining a leg ...
g chair1 leg2
... vertices defining a leg ...
g chair1 leg3
... vertices defining a leg ...
g chair1 leg4
... vertices defining a leg ...
g chair1 back
... vertices defining the back of the chair ...
g chair1 seat
... vertices defining a seat ...

Я не совсем уверен в этом, но из того, что я могу сказать, несмотря на внешний вид того, что это иерархия, это не так, то есть leg1 не является потомком стула1. Поэтому каждое такое название группы должно быть уникальным, если у вас несколько стульев.

Теперь, учитывая это, вы можете изменить код для sh3d, чтобы использовать несколько групп, по одной для каждого узла. Однако Я не знаю, правильно ли код Blender анализирует и использует несколько групп, или есть ли какой-либо способ в пользовательском интерфейсе Blender для выбора на основе этих групп.

Другой альтернативой может быть изменение кода экспорта .obj в sh3d для вывода нескольких файлов и чтения каждого из файлов в Blender. Конечно, тогда у вас есть проблема с тем, что исходные точки для каждого файла .obj будут отключены ... т.е. если вы вращаете кресло, а не вращаетесь вокруг оси, проходящей через центр кресла, ось будет где-то еще, поэтому стул будет двигаться по дуге вокруг сцены.

Частично проблема заключается в том, что формат файла .obj имеет формат объект , а не формат scene .

...