Ogre 2011-11-23

先贴点代码

#include "http://www.cnblogs.com/include/ogre/ExampleApplication.h"



class MyApplication :public ExampleApplication

{

public:

	void createScene()

	{

		Ogre::Entity* ent = mSceneMgr->createEntity("myentity", "Sinbad.mesh");

		Ogre::SceneNode* node = mSceneMgr->createSceneNode("node");

		node->setPosition(10, 10, 0);

		mSceneMgr->getRootSceneNode()->addChild(node);

		node->attachObject(ent);



		Ogre::Entity* ent2 = mSceneMgr->createEntity("myentity2", "Sinbad.mesh");

		Ogre::SceneNode* node2 = mSceneMgr->createSceneNode("node2");

		node->addChild(node2);

		node2->setPosition(10, 0, 0);

		node2->pitch(Ogre::Radian(Ogre::Math::HALF_PI));

		node2->attachObject(ent2);



		Ogre::Entity* ent3 = mSceneMgr->createEntity("myentity3", "Sinbad.mesh");

		Ogre::SceneNode* node3 = mSceneMgr->createSceneNode("node3");

		node3->setPosition(20, 0, 0);

		node->addChild(node3);

		node3->yaw(Ogre::Degree(90.0f));

		node3->attachObject(ent3);



		Ogre::Entity* ent4 = mSceneMgr->createEntity("myentity4", "Sinbad.mesh");

		Ogre::SceneNode* node4 = mSceneMgr->createSceneNode("node4");

		node4->setPosition(30, 0, 0);

		node->addChild(node4);

		node4->roll(Ogre::Radian(Ogre::Math::HALF_PI));

		node4->attachObject(ent4);

	}

private:

};



int main()

{

	MyApplication app;

	app.go();

	return 0;

}

  

ogre启动时需要载入3个.cfg文件:ogre.cfg, plugins.cfg, resources.cfg。其中ogre.cfg保存了启动ogre时弹出对话框时我们选择的配置信息;plugins.cfg保存了ogre需要载入的插件信息;resources.cfg保存了一些orge启动时需要载入的资源。

mSceneMgr->createEntity(const String& entityName, const String& meshName, const String& groupName = ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME );

第一个参数是实体的名字,不能重复。

创建的实体要渲染出来的话,必须将其挂接到场景节点上。

 

The Ogre Scene Graph

场景图类似于一个树,有一个根节点,然后这个根节点有很多子节点,子节点又可以有很多子节点。若要渲染实体,需将其挂载到根节点或者根节点的子节点上去。

Ogre用的是右手坐标系。

场景节点的操作有位置变换(triple(x,y,z)),旋转(四元数quaternion),缩放(triple(x,y,z))。

需要注意的是:场景节点的变换是相对其父节点的,在其父节点的坐标空间里进行变换的。如果我们对一个父节点进行了变换,那么其所有的子节点都要受这个变换的影响。如果我们把父节点在x轴上移动10个单位,那么其所有的子节点也在x轴上移动10个单位。子节点的最终位置是用其所有父节点的坐标计算出来的。

Ogre 2011-11-23

你可能感兴趣的:(r)