импортировать сцену в xna - PullRequest
       5

импортировать сцену в xna

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

У меня есть сцена, которая содержит несколько объектов. Как я могу импортировать его в XNA и поддерживать положение каждого объекта? сейчас я экспортирую сцену в .fbx и загружаю ее в такую ​​модель:

 cube.model = contentManager.Load<Model>("cub");

но объекты не сохраняют свое положение и все собраны в одной точке.

Мне нужен метод для импорта всех объектов как отдельных объектов, но чтобы сохранить положение объектов на сцене?

(т.е. мне нужно импортировать сцену, чтобы я мог манипулировать объектами и сохранять их положение в сцене, чтобы я не мог самостоятельно перемещать все объекты)

Ответы [ 2 ]

1 голос
/ 13 января 2012

Положение сцены каждого объекта в fbx.Чтобы получить и реализовать его, нужно создать матричный массив для хранения преобразования каждого объекта относительно начала сцены, а затем использовать соответствующие преобразования при установке effect.World для каждого объекта во время рисования.

//class variables
Matrix[] objectTransforms;

//LoadContent section
cube.model = contentManager.Load<Model>("cub");
objectTransforms = new Matrix[cube.model.Bones.Count];
cube.model.CopyAbsoluteTransformsTo(objectTransforms);// the magic is done here

//draw method
foreach(ModelMesh mm in cube.model.Meshes)
{
foreach (BasicEffect bfx in mm.Effects)
{
   bfx.World = objectTransforms[mm.ParentBone.Index] * whateverLocalTransformYouWant;
   //draw here
}
}

Без использования 'objectTransforms' все объекты будут нарисованы с их локальными источниками, расположенными в начале координат мира, что походит на то, что вы испытываете.

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

Я лично сделал редактор уровней для большинства вещей в моей игре, но у меня есть большая сцена в блендере, которая связана с другими моделями. Таким образом, я могу расположить все элементы уровня в блендере. Когда я экспортирую каждый отдельный кусок, он сохраняет глобальную позицию и правильно импортирует в игру. Я бы сказал, что проблема заключается в вашем экспортере fbx. Должна быть возможность сохранить местоположение.

Какую программу моделирования вы используете? Если вы используете blender, существует набор экспортеров fbx, созданный специально для XNA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...