You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Pre-requisite:

  1. OGRE3D Base Environment Setup (Windows)
  2. Object-Oriented Programming

Objectives:

  1. Refactor the ogre head and pack it into an object

Descriptions:

  1. Use Ogre AppWizard to create a new OGRE project
  2. in the createScene method of your OgreApp

    Creating the ogrehead and the ambient light
     void Refactoring101::createScene(void)
    {
        Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh");
        Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
        headNode->attachObject(ogreHead);
        // Set ambient light
        mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));
        // Create a light
        Ogre::Light* l = mSceneMgr->createLight("MainLight");
        l->setPosition(20,80,50);
    }
  3. Read the code : to display a 3D object, there needs to be an Entity and a Node
    1. A node can contain multiple entities.
    2. Entity cannot have the same name.
    3. Node can be unmaned, but it will be hard to retrieve.
    4. Node with same name is also not allowed.
  4. What we need is to put the ogrehead code into our custom class.
    1. Add file "HeadEntity.h" and "HeadEntity.cpp"
    2. The header file should be in <your project>\include and the cpp should be in <your project>\src (if you find error include cannot find "HeadEntity.h", it's probably because your .h file is outside include folder in the project root)
    3. Let's assume we only create one entity for each node for manipulation this time.
  5. Code into both files:
  • No labels