Ogre应用之一:MFC+Ogre+OSI搭建

本文介绍了如何将Ogre3D引擎嵌入到MFC框架中,通过调整渲染配置、创建渲染窗口并实现自定义渲染循环,解决了与MFC消息循环的冲突。同时,详细讲解了OIS的设置,强调了OIS需要顶层窗口句柄进行IO处理,以及如何创建监听类来处理键盘鼠标输入。
摘要由CSDN通过智能技术生成

Ogre应用之一MFC+Ogre+OSI搭建

by:唐崇(theone7)

虫子||CSDN技术博客(http://blog.csdn.net/theone7)


引言:这系列的文章来自于学校毕业设计的选题—“3D售楼处”,在小组中我负责3D图形的渲染,采用的是Ogre引擎来做。由于在准备研究生,断断续续地用将近一个的月的时间完成了一个Demo。


一、将Ogre嵌入MFC框架

    用过Ogre的同学都知道:在SDK中,官方提供了一个很好的例子来介绍如何使用Ogre。而网上很多教程是直接继承例子中的类来实现想要的工作的,感觉这会多出很多不需要的东西。所以在我的Demo中是直接新建一个类,只加上自己想要的东西。(下面只列出了本文有关的代码)


class COGRE_Manager
{
//单例模式构建{
   {
private:
	explicit COGRE_Manager();
public:
	~COGRE_Manager();
	inline static COGRE_Manager& GetSingleton(){	
		static COGRE_Manager m_ogreManager;
		return m_ogreManager;
	}
//单例模式构建结束}}

//<功能接口>:
public:
//初始化
	bool StartUp(HWND m_hWnd, int width, int height ,HWND hMainWnd);
//<数据接口>:
public:
	//< 获得私有成员变量>:
        //ogre根对象
        Ogre::Root* GetRoot(void) const {return mRoot;}
	//摄像机对象
        Ogre::Camera* GetCamera(void) const {return mCamera;}
        //场景管理器对象
        Ogre::SceneManager* GetSceneManager(void) const {return mSceneMgr;}
	//渲染窗口对象
        Ogre::RenderWindow* GetRenderWindow(void) const {return mWindow;}
//<私有方法>:
private:
    //创建ogre根对象
    void CreateRoot();
    //设置渲染系统
    void SetupRenderSystem();
    //创建渲染窗口
    void CreateRenderWindow(HWND m_hWnd, int width, int height);
	//渲染场景管理器
      void ChooseSceneManager();
	//创建摄像机
      void Creat
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值