您的位置:首页 > 其它

Ogre Atomsphere shader

2015-02-16 11:54 169 查看
最近在研究ogre的shader,看了一下官网的教程,鼓捣了一下午总算是把效果搞出来,贴一下关键代码:

createSphere("sphere",10);

createSphere("Atomsphere",11);
Ogre::Entity* PlanetEntity = mSceneMgr->createEntity("planet","sphere");
PlanetEntity->setMaterialName("Examples/Rockwall");
Ogre::Entity* AtmosphereEntity = mSceneMgr->createEntity("planet_atm_Ent","Atomsphere");
//assign it our material
AtmosphereEntity->setMaterialName ("Atmosphere");
//also this will make the atmosphere to be rendered behind the planet
AtmosphereEntity->setRenderQueueGroup (Ogre::RENDER_QUEUE_BACKGROUND);
//here you will replace PlanetRadius and AtmosphereRadius with your values
AtmosphereEntity->getSubEntity (0)->setCustomParameter (0, Ogre::Vector4(10,11,0,0));

Ogre::SceneNode* node1=mSceneMgr->getRootSceneNode()->createChildSceneNode();
node1->attachObject(PlanetEntity);
Ogre::SceneNode* node2=mSceneMgr->getRootSceneNode()->createChildSceneNode();
node2->attachObject(AtmosphereEntity);

// 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);


其他的渲染代码、材质脚本代码与官网上的一样,至于那个createsphere是一个自定义函数,参见:

http://www.ogre3d.org/tikiwiki/ManualSphereMeshes
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: