码迷,mamicode.com
首页 > 其他好文 > 详细

Ogre-三维窗口上添加导航小窗口

时间:2015-03-30 18:43:30      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:导航小窗口   画中画   透明窗口   

参考: http://www.cppblog.com/hitmaen/archive/2007/05/22/24589.html

参考: http://www.360doc.com/content/13/0906/11/593831_312575920.shtml

参考: http://blog.csdn.net/windows_nt/article/details/7495387

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

 

要实现在Ogre-三维窗口上添加导航小窗口

有两种方法,一种是使用Ogre多视口实现,一种是使用Windows的透明窗口实现

 

下面使用Ogre的多视口来实现

//-------------------------------------------------------------------------------------------------------------

首先创建第二个Camera

// 画中画相机

    m_pCameraInner = m_pSceneManager->createCamera("InnerCam");//创建名为PlayerCam的摄像机

    m_pCameraInner->setPosition(Vector3(0,0,500));//设置摄像机的位置

    m_pCameraInner->lookAt(Vector3(0,0,0));//摄像机的方向

    m_pCameraInner->setNearClipDistance(5);//位置单位的近距离剪裁

 

然后创建第二个ViewPort,该ViewPort点据窗口的一角

 

// 画中画视口

    Viewport *vpInner = m_pWindow->addViewport(m_pCameraInner, 1, 0.75, 0, 0.25, 0.25); // 放置在左上角

    vpInner->setBackgroundColour(ColourValue(0, 0, 1)); // 设置底色

    vpInner->setOverlaysEnabled(false); // 不启用overlay

    m_pCameraInner->setAspectRatio(Real(vp->getActualWidth())/Real(vp->getActualHeight())); // 视口纵横比

 

 

下面使用windows的透明窗口实

//-------------------------------------------------------------------------------------------------------------

a.       首先,建立一个无边框的对话框,

b.       然后在对话框的OnInitDialog中设置透明窗体属性,设置透明度

// 设置窗体为半透明

    SetWindowLong(m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE)|WS_EX_LAYERED);

    SetLayeredWindowAttributes(0, 128, LWA_ALPHA);

 

c.       再把窗体的位置调整到左上角

d.       可以使用OpenGL在窗体中绘制元素

 

这样就形成了画中画的效果,并且这个画中画的效果是半透明效果

 

 

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

Ogre-三维窗口上添加导航小窗口

标签:导航小窗口   画中画   透明窗口   

原文地址:http://blog.csdn.net/chunyexiyu/article/details/44754283

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!