参考:
参考:
参考:
(Owed by: 春夜喜雨 转载请标明来源)
要实现在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: 春夜喜雨 转载请标明来源)
不是每一次努力都有收获,但是,每一次收获都必须经过努力。