Ogre 201-11-23

2569 ワード

まずポイントコードを貼ります
#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,reourcess.cfg.ここで、ogre.cfgは、ogreを起動するときにダイアログを呼び出すときに選択した設定情報を保存しています.plugins.cfgはogreにロードするプラグインの情報を保存しました.reourcess.cfgはいくつかのorgeが起動する時にロードするべき資源を保存しています.
mSceeneMgr->createEntity(const String&entityName、const String&mesh Name、const String&groupName=Resource GroupManager:AUTODETECT-uRESOURCE UPuNAME );
最初のパラメータはエンティティの名前です.重複できません.
作成したエンティティをレンダリングするには、シーンノードに接続しなければなりません.
 
The Ogre Scene Graph
シーン図は、ツリーに似ていて、ルートノードがあり、このルートノードには多くのサブノードがあり、サブノードには多くのサブノードがあり得る.エンティティをレンダリングするには、ルートノードまたはルートノードのサブノードにマウントする必要がある.
Ogreは右手座標系を使います.
シーンノードの動作には位置変換(x,y,z)、回転(4元数quaternion)、スケーリング(triple(x,y,z)があります.
シーンノードの変換は、親ノードに対して、親ノードの座標空間で変換されます.親ノードが変換されたら、そのすべてのサブノードはこの変換の影響を受けます.親ノードをx軸に10単位移動させると、そのすべてのサブノードもx軸に10単位移動します.点の最終位置は、その親ノードのすべての座標で計算されます.
Ogre 2011-11-23