'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 .