Ogre笔记六:基础教程三—天空、地面和雾化处理

废话不多说,直接上代码和图片

#include "ExampleApplication.h"
class TutorialApplication : public ExampleApplication
{
protected:
public:
	TutorialApplication()
	{
	}
	~TutorialApplication()
	{
	}
protected:
	void chooseSceneManager(void)
	{
		//将场景管理器设为地面的场景管理器
		mSceneMgr = mRoot->createSceneManager(ST_EXTERIOR_CLOSE);
		//初始化一个资源组
		ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
	}
	void createScene(void)
	{
/*********************************************************************************************/
		//普通天空

		//加载地面属性
		//mSceneMgr->setWorldGeometry( "terrain.cfg" );
		//天空盒
		//mSceneMgr->setSkyBox( true, "Examples/SpaceSkyBox" );
		//天空穹
		//mSceneMgr->setSkyDome( true, "Examples/CloudySky", 5, 8 );
		//天空面
 		//Plane plane;
 		//plane.d = 1000;
 		//plane.normal = Vector3::NEGATIVE_UNIT_Y;
 		//mSceneMgr->setSkyPlane( true, plane, "Examples/SpaceSkyPlane", 1500, 75 );
		//mSceneMgr->setSkyPlane( true, plane, "Examples/CloudySky", 1500, 40, true, 1.5f, 150, 150 );

/*********************************************************************************************/
		//普通雾效

		//设置视口的背景颜色
 		//ColourValue fadeColour(0.9, 0.9, 0.9);
		//mWindow->getViewport(0)->setBackgroundColour(fadeColour);

 		//mSceneMgr->setFog(FOG_LINEAR, fadeColour, 0.0, 50, 500);

		//加载地面属性
		//mSceneMgr->setWorldGeometry( "terrain.cfg" );

/*********************************************************************************************/
		//天空面雾效
		/*ColourValue fadeColour(0.9, 0.9, 0.9);
		mSceneMgr->setFog(FOG_LINEAR, fadeColour, 0.0, 0, 130);
		mWindow->getViewport(0)->setBackgroundColour(fadeColour);
		Plane plane;
		plane.d = 100;
		plane.normal = Vector3::NEGATIVE_UNIT_Y;
		mSceneMgr->setWorldGeometry("terrain.cfg");
		mSceneMgr->setSkyPlane(true, plane, "Examples/CloudySky", 500, 20, true, 0.5, 150, 150);*/
		
/*********************************************************************************************/
		//黑暗中的雾效
		ColourValue fadeColour(0.1, 0.1, 0.1);
		mWindow->getViewport(0)->setBackgroundColour(fadeColour);
		mSceneMgr->setFog(FOG_LINEAR, fadeColour, 0.0, 10, 150);
		mSceneMgr->setWorldGeometry("terrain.cfg");
		Plane plane;
		plane.d = 10;
		plane.normal = Vector3::NEGATIVE_UNIT_Y;
		mSceneMgr->setSkyPlane(true, plane, "Examples/SpaceSkyPlane", 100, 45, true, 0.5, 150, 150);
	}
};
#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char **argv)
#endif
{
	// Create application object
	TutorialApplication app;
	try {
		app.go();
	} catch( Exception& e ) {
#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32
		MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK |
			MB_ICONERROR | MB_TASKMODAL);
#else
		fprintf(stderr, "An exception has occured: %s\n",
			e.getFullDescription().c_str());
#endif
	}
	return 0;
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值