0009Ogre实现起伏定型,云雾效果
来源:互联网 发布:c windows driver sep 编辑:程序博客网 时间:2024/04/29 00:08
在Ogre中共有继承基类ExampleApplication.h可以实现很多应用,比如今天根据教程实现的起伏地形,云和雾灯效果。
#include "ExampleApplication.h"class Example25FrameListener:public Ogre::FrameListener{private:Ogre::SceneNode* _node;public:Example25FrameListener(Ogre::SceneNode* node){_node=node;}bool frameStarted(const Ogre::FrameEvent &evt){_node->translate(Ogre::Vector3(0.1,0,0)); //用(0.1,0,0)来变化节点node以图产生移动(运动)return true;}Ogre::FrameListener* FrameListener;public:Example25FrameListener(){FrameListener=NULL;}~Example25FrameListener(){if(FrameListener){delete FrameListener;}}};class TutorialApplication : public ExampleApplication{private:Ogre::SceneNode* _SinbadNode;protected:void chooseSceneManager(void) //to choose Scene Manager{mSceneMgr=mRoot->createSceneManager(ST_EXTERIOR_CLOSE); //choose "ST_EXTERIOR_CLOSE"type Scene ManagerResourceGroupManager::getSingleton().initialiseAllResourceGroups();} void createScene(void){//adding viewport and fog ,must set before adding a ground ColourValue fadeColour(0.9,0.7,0.9);mWindow->getViewport(0)->setBackgroundColour(fadeColour); mSceneMgr->setFog(FOG_LINEAR,fadeColour,0.001f,10,500); //adding a ground/*mSceneMgr->setWorldGeometry("terrain.cfg");*///Create a planeOgre::Plane plane(Vector3::UNIT_Y,-10);Ogre::MeshManager::getSingleton().createPlane("plane",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,plane,1500,1500,200,200,true,1,5,5,Vector3::UNIT_Z);Ogre::Entity* ent=mSceneMgr->createEntity("LightPlaneEntity","plane");mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);ent->setMaterialName("Examples/Rockwall");//adding lightOgre::Light* light=mSceneMgr->createLight("light1");light->setType(Ogre::Light::LT_DIRECTIONAL);light->setDirection(Ogre::Vector3(10,0,-10));//adding entityOgre::SceneNode* node=mSceneMgr->createSceneNode("node1");mSceneMgr->getRootSceneNode()->addChild(node);Ogre::Entity* Sinbad=mSceneMgr->createEntity("Ninja","ninja.mesh");_SinbadNode=node->createChildSceneNode("NinjaNode");_SinbadNode->setScale(0.25f,0.25f,0.25f);_SinbadNode->setPosition(Ogre::Vector3(400.0f,50.0f,400.0f));_SinbadNode->attachObject(Sinbad);_SinbadNode->yaw(Degree(-135));//adding shadowmSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_MODULATIVE);//adding plane skyPlane plane1;plane1.d=1000;plane1.normal=Vector3::NEGATIVE_UNIT_Y;mSceneMgr->setSkyPlane(false,plane1,"Examples/SpaceSkyPlane",1500,75,true,1.5f,150,150);mSceneMgr->setSkyDome(true,"Examples/CloudySky",5,8,2000,true); }//adding a camera virtual void createCamera(void){ mCamera=mSceneMgr->createCamera("MyCamera1");mCamera->setPosition(550.0f,120.0f,550.0f);mCamera->lookAt(400.0f,100.0f,400.0f);mCamera->setNearClipDistance(5);}public:TutorialApplication(){}~TutorialApplication(){}};#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32#define WIN32_LEAN_AND_MEAN#include "windows.h"INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine,INT )#elseint main(int argc, char **argv)#endif{// Create application objectTutorialApplication app;try {app.go();} catch( Exception& e ) {#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);#elsefprintf(stderr, "An exception has occured: %s\n",e.getFullDescription().c_str());#endif}return 0;}
0 0
- 0009Ogre实现起伏定型,云雾效果
- flash中模拟云雾效果
- 起伏
- ogre实现加入物理效果terrain
- ogre实现加入物理效果terrain
- ogre实现加入物理效果terrain
- 一种小波浪起伏的状态栏效果
- 怎么用CorelDRAW封套效果给对象定型
- OGRE 效果展示
- OGRE DEMO 效果截图
- OGRE雾化效果入门
- OGRE 描边效果
- Ogre 发光效果
- javascript实现页面中旋转起伏的眩目光环
- 初期定型.
- OGRE粒子调烟花效果
- 火炬之光中人物被遮挡效果在Ogre中的实现方法
- 用Ogre固定渲染管线实现火炬之光X-RAY效果
- iOS文件管理
- 数据库范式——通俗易懂
- [MFC]DriveTree应用:CTreeView的示例
- PopupWindow用法
- 我们帮助 iOS 平台的 App快速进入审核状态,跳过漫长的两到三周的等待时间
- 0009Ogre实现起伏定型,云雾效果
- Android PopupWindow 的使用
- Android中PopupWindow的用法(位置、动画、焦点)
- Xcode7 上传AppStore出现 ERROR ITMS-90474,ERROR ITMS-90475错误
- c函数指针详解
- Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
- 九度OJ 1214:丑数 (整除)
- 关系型数据库设计范式
- create sequence