ogre 天空与雾
2015-07-23 14:30
232 查看
ogre天空与雾
接上章,我们来添加天空与雾。
接上章,我们来添加天空与雾。
void TutorialApplication::createScene(void) { // Create your scene here :) // 设置相机的位置,因为地形一般都比较大,所以设置得远一点 mCamera->setPosition(Ogre::Vector3(1683,50,2116)); mCamera->lookAt(Ogre::Vector3(1963,50,1660)); mCamera->setNearClipDistance(0.1); bool infiniteClip = mRoot->getRenderSystem()->getCapabilities()->hasCapability(Ogre::RSC_INFINITE_FAR_PLANE); if (infiniteClip) { // 如果显卡系统(即渲染系统)支持无穷远的剪切,那么设置可以看到无穷远的地方 mCamera->setFarClipDistance(0); } else { mCamera->setFarClipDistance(50000); } // 设置环境光 mSceneMgr->setAmbientLight(Ogre::ColourValue(0.2,0.2,0.2)); Ogre::Vector3 lightdir(0.55,-0.3,0.75); lightdir.normalise(); // 创建一个有向光 Ogre::Light* light = mSceneMgr->createLight("TestLight"); light->setType(Ogre::Light::LT_DIRECTIONAL); light->setDirection(lightdir); light->setDiffuseColour(Ogre::ColourValue::White); light->setSpecularColour(Ogre::ColourValue(0.4,0.4,0.4)); // Fog Ogre::ColourValue fadeColour(.9, .9, .9); mWindow->getViewport(0)->setBackgroundColour(fadeColour); //mSceneMgr->setFog(Ogre::FOG_LINEAR, fadeColour, 0, 600, 900); //mSceneMgr->setFog(Ogre::FOG_EXP, fadeColour, 0.002); mSceneMgr->setFog(Ogre::FOG_EXP2, fadeColour, 0.002); // 创建全局的地形配置信息 mTerrainGlobals = OGRE_NEW Ogre::TerrainGlobalOptions(); // 创建TerrainGroup对象,以管理地形 // 第一参数为场景管理器,第二个参数为地形的的排布,第三个参数为地形的大小,第四个参数为整个地块的大小 mTerrainGroup = OGRE_NEW Ogre::TerrainGroup( mSceneMgr, Ogre::Terrain::ALIGN_X_Z, 513, 12000.0); mTerrainGroup->setFilenameConvention(Ogre::String("terrain"),Ogre::String("dat")); mTerrainGroup->setOrigin(Ogre::Vector3::ZERO); // 配置地形 configureTerrainDefaults(light); // 定义地形 for (long x = 0; x <= 0; ++x) for(long y = 0; y<=0; ++y) { defineTerrain(x,y); } // 同步载入所有的地形,这样我们一启动就可以得到所有的一切了 mTerrainGroup->loadAllTerrains(true); // 如果只是单纯的载入地形,将所有已存在的地形调用initBlendMaps if (mTerrainsImported) { Ogre::TerrainGroup::TerrainIterator ti = mTerrainGroup->getTerrainIterator(); while (ti.hasMoreElements()) { Ogre::Terrain* t = ti.getNext()->instance; initBlendMaps(t); } } // 清理临时资源 mTerrainGroup->freeTemporaryResources(); // Sky Techniques /*mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox");*/ /*mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox", 300);*/ /*mSceneMgr->setSkyBox(true, "Examples/SpaceSkyBox", 300, false);*/ mSceneMgr->setSkyDome(true, "Examples/CloudySky", 5, 8); /*Ogre::Plane plane; plane.d = 1000; plane.normal = Ogre::Vector3::NEGATIVE_UNIT_Y; mSceneMgr->setSkyPlane(true, plane, "Examples/SpaceSkyPlane", 1500, 75); mSceneMgr->setSkyPlane( true, plane, "Examples/SpaceSkyPlane", 1500, 50, true, 1.5, 150, 150);*/ }
相关文章推荐
- Linux下完美卸载Oracle教程
- Xcode打包IPA时出现“OS X”想要进修修改
- Quartus中出现错误: Can't place multiple pins assigned to pin location Pin_F16 (IOPAD_X53_Y21_N14)
- Canvas rotate- 旋转
- YII安装步骤(windows)
- List之Union(),Intersect(),Except() 亦可以说是数学中的并集,交集,差集
- Java程序员学习C++之函数指针
- iOS webView加载本地html,及图片等问题
- 欢迎使用CSDN-markdown编辑器
- C# 加密解密(DES,3DES,MD5,Base64) 类
- Objective-C学习笔记(十二)——switch多分支语句的使用
- Remember The Word-Trie
- Go学习第一课
- vi 阅读代码必备命令
- day08
- 基于spark1.4的Spark-Sql
- 人类始终无法抗拒的十种心理
- Remember The Word-Trie
- druid报异常 “sql injection violation, part alway true condition not allow”的解决方案
- 线程的详细说明