15.startup

以前的所有例子都用到了ExampleApplication,这一节终于脱离ExampleApplication。直接上代码。

int main(void)
{
	ogre::root* root = new ogre::root("plugins_d.cfg");
	if(!root ->showconfigdialog())
	{
		return -1;
	}

	ogre::renderwindow* window = root ->initialise(true, "ogre3dbeginnersguide");
	ogre::scenemanager* scenemanager = root ->createscenemanager(ogre::st_generic);

	ogre::camera* camera = scenemanager ->createcamera("camera");
	camera ->setposition(ogre::vector3(0, 0, 50));
	camera ->lookat(ogre::vector3(0, 0, 0));
	camera ->setnearclipdistance(5);

	ogre::viewport* viewport = window ->addviewport(camera);
	viewport ->setbackgroundcolour(ogre::colourvalue(0.0, 0.0, 0.0));
	camera ->setaspectratio(ogre::real(viewport ->getactualwidth()) / ogre::real(viewport ->getactualheight()));
	
	ogre::configfile cf;
	cf.load("resources_d.cfg");
	ogre::configfile::sectioniterator sectioniter = cf.getsectioniterator();
	ogre::string sectionname, typename, dataname;
	while(sectioniter.hasmoreelements())
	{
		sectionname = sectioniter.peeknextkey();
		ogre::configfile::settingsmultimap* settings = sectioniter.getnext();
		ogre::configfile::settingsmultimap::iterator i;
		for(i = settings ->begin(); i != settings ->end(); ++i)
		{
			typename = i ->first;
			dataname = i ->second;
			ogre::resourcegroupmanager::getsingleton().addresourcelocation(dataname, typename, sectionname);
		}
	}
	ogre::resourcegroupmanager::getsingleton().initialiseallresourcegroups();

	ogre::entity* ent = scenemanager ->createentity("sinbad.mesh");
	scenemanager ->getrootscenenode() ->attachobject(ent);

	root ->startrendering();
	return 0;
}
当然还要包括头文件OIS.h和Ogre.h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值