Конвертировать из Blender в Ogre3D

Я только что закончил настраивать Blender, чтобы он мог экспортировать в Ogre. Когда я экспортирую, я получаю кучу mesh файлов и scene файл.

Я загружаю модель, которую предоставляет Ogre SDK, и она работает так:

mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5f, 0.5f, 0.5f));

// Create an Entity
Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh");

// Create a SceneNode and attach the Entity to it
Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("HeadNode");
headNode->attachObject(ogreHead);

// Create a Light and set its position
Ogre::Light* light = mSceneMgr->createLight("MainLight");
light->setPosition(20.0f, 80.0f, 50.0f);

Что происходит, так это то, что он загружает единственный файл mesh и все.

Это результат экспорта Blender:

введите описание изображения здесь

Что мне нужно сделать отсюда, чтобы загрузить мою модель?


person or azran    schedule 01.05.2014    source источник


Ответы (1)


Это немного зависит от того, чего вы хотите достичь.

В настоящее время вы создали сцену в блендере, состоящую из нескольких частей, которые вместе образуют ваш вертолет BlackHawk. Если вам нужен только один объект в Ogre, вы можете объединить элементы внутри Blender в один объект, экспортировать его и использовать тот же код загрузки, что и раньше (с использованием нового имени файла .mesh, конечно).

Если вы хотите, чтобы отдельные части оставались независимыми, вам придется загружать их в Ogre одну за другой или использовать один из множества загрузчиков DotScene (например, этот или тот или тот, который также обрабатывает пользовательские данные) и укажите его на свой файл " BlackHawk.scene " (который должен ссылаться на все части вертолета).

person Philip Allgaier    schedule 01.05.2014
comment
Во-первых, большое спасибо за ответ! когда я пытаюсь использовать ваш первый вариант для загрузки файла .scene, я получаю ошибку компиляции от visual c 2010: 1 ›tinyxmlparser.cpp 1› tinyxmlerror.cpp 1 ›tinyxml.cpp 1› tinystr.cpp - person or azran; 04.05.2014
comment
Что ж, мы никак не можем помочь решить эту проблему с помощью этой небольшой информации. Требуется гораздо больше деталей, возможно, отдельный поток, чтобы не допустить путаницы. - person Philip Allgaier; 05.05.2014