Code: Select all
[...]
ResourceGroupManager::getSingleton().addResourceLocation("./Media/2.0/scripts/materials/PbsMaterials", "FileSystem", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);
ResourceGroupManager::getSingleton().addResourceLocation("./Media/materials/textures", "FileSystem", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);
ResourceGroupManager::getSingleton().addResourceLocation("./Media/models", "FileSystem", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);
ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
Ogre::SceneManager *scene_mgr = ogre.root->createSceneManager(Ogre::ST_GENERIC, 1, Ogre::INSTANCING_CULLING_SINGLETHREAD);
Camera *camera = scene_mgr->createCamera("MainCamera");
camera->setPosition(0, 10, 10);
camera->lookAt(0, 0, 0);
Light *light = scene_mgr->createLight();
SceneNode* light_node = scene_mgr->getRootSceneNode()->createChildSceneNode(Ogre::SCENE_DYNAMIC);
light_node->setPosition(0, 5, 0);
light_node->_getDerivedPositionUpdated();
light->setType(Light::LT_DIRECTIONAL);
light_node->lookAt(Vector3(0,0,0), Node::TS_WORLD);
light_node->attachObject(light);
CompositorManager2 *compositor_mgr = ogre.root->getCompositorManager2();
IdString name = "Workspace";
compositor_mgr->createBasicWorkspaceDef(name, ColourValue(0.2, 0.2, 0.2));
compositor_mgr->addWorkspace(scene_mgr, ogre.render_window, camera, name, true);
CubeMesh cube(scene_mgr);
Ogre::SceneNode *node = scene_mgr->getRootSceneNode()->createChildSceneNode(Ogre::SCENE_DYNAMIC);
auto v1Mesh = Ogre::v1::MeshManager::getSingleton().load(
"athene.mesh", Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME,
Ogre::v1::HardwareBuffer::HBU_STATIC, Ogre::v1::HardwareBuffer::HBU_STATIC );
//Create a v2 mesh to import to, with a different name (arbitrary).
auto v2Mesh = Ogre::MeshManager::getSingleton().createManual(
"athene.mesh Imported", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME );
bool halfPosition = true;
bool halfUVs = true;
bool useQtangents = true;
//Import the v1 mesh to v2
v2Mesh->importV1( v1Mesh.get(), halfPosition, halfUVs, useQtangents );
//We don't need the v1 mesh. Free CPU memory, get it out of the GPU.
//Leave it loaded if you want to use athene with v1 Entity.
v1Mesh->unload();
//Create an Item with the model we just imported.
//Notice we use the name of the imported model. We could also use the overload
//with the mesh pointer:
// item = sceneManager->createItem( v2Mesh, Ogre::SCENE_DYNAMIC );
Ogre::Item *item = scene_mgr->createItem( "athene.mesh Imported",
Ogre::ResourceGroupManager::
AUTODETECT_RESOURCE_GROUP_NAME,
Ogre::SCENE_DYNAMIC );
// item->setDatablock("Marble");
node->scale( 0.1f, 0.1f, 0.1f );
light->setPowerScale( Ogre::Math::PI );
node->attachObject(item);
light->setType( Ogre::Light::LT_DIRECTIONAL );
light->setDirection( Ogre::Vector3( -1, -1, -1 ).normalisedCopy() );
bool quit = false;
while (!quit) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
quit = true;
}
}
ogre.root->renderOneFrame();
}
std::cout << "Done" << std::endl;
return 1;
}
Code: Select all
All done
Mesh: Loading athene.mesh.
WARNING: athene.mesh is an older format ([MeshSerializer_v1.8]); you should upgrade it as soon as possible using the OgreMeshTool tool.
Can't assign material 1 - Default because this Material does not exist. Have you forgotten to define it in a .material script?
Done
Also, I'm on Mac OSX 10.10. dark_sylinc said that it isn't supported. Does it mean that simple stuff like this may not be working?