ogre小知识点

最近学习下ogre,使用感觉还算不错。本文记录下我学到的ogre小知识点。
1. ogre场景组织。ogre的各类资源都有其管理类,如Scene/Mesh/Material等。
2. ogre场景组织。ogre使用Node的子类SceneNode做为场景结点,来构建常用的场景树。SceneNode下可添加(attach) MovableObject对象,MovableObject有两个子类ManualObject和Entity。ManualObject由用户自己输入要显示内容的点/面/颜色等;Entity下的显示内容由Mesh对象(唯一对应)提供,Mesh可由代码生成,也可用代码生成。
3. Camera显示功能。目前Ogre为Camera提供了3种显示功能:点/线/实体,操作代码如下:

 case 0:   mMain->getCamera()->setPolygonMode(Ogre::PM_POINTS);   break;
 case 1:   mMain->getCamera()->setPolygonMode(Ogre::PM_WIREFRAME);   break;
 case 2:   mMain->getCamera()->setPolygonMode(Ogre::PM_SOLID);      break;`

4.环境光设置

mSceneMgr->setAmbientLight( ColourValue( 1, 1, 1 ) )

5.设置背景色
Ogre::RenderWindow::getViewport(int index)::setBackgroundColour (const ColourValue &colour)

6.Qt与Ogre结合
官网给出了ogre和qt5结合的例子,http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Integrating+Ogre+into+QT5
例子中使用QWindow而不是QWidget,因为(1)QWindow是qt5中新加的,它比QWidget抽象层级更高(3)在QtGui模块中,这有利于减少文件体积,尤其对于qt quick开发的,qt quick依赖于QML模块,不依赖QWidgets模块。

在我们使用的时候要用将这个QWindow的窗口加载到QWidget中使用,但问题出现了。一定要

QWindow* w = new QTOgreWindow;
w->resize(400, 300)        // 顺序一定不能变,否则Ogre窗口启动时会出现窗口大小178x0或0x0的错误
QWidget* w2 = QWidget::createWindowContainer(ogreWindow);///这个w2没有任何作用,它本身不做任何操作,甚至不检查参数,全部直接传给w

7.启动Ogre抗锯齿
Ogre的抗锯齿在Ogre.cfg中设置后无效需要在建立窗口的时候设置才有效。代码如下:

root.Initialise(false);
NameValuePairList misc = new NameValuePairList();
misc["externalWindowHandle"] = hWnd.ToString();
misc["FSAA"] = "4";  // 可选值0,2,4,8,切记是字符串
window = root.CreateRenderWindow("Simple Mogre Form Window", 0, 0, false, misc);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值