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

参考:

参考:

参考:

(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: 春夜喜雨 转载请标明来源)

不是每一次努力都有收获,但是,每一次收获都必须经过努力。

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

相关文章:

你感兴趣的文章:

标签云: