查看: 3251|回复: 12

请教:点击CEGUI界面的按钮,触发事件显示OSG场景,该如何实现?

[复制链接]

该用户从未签到

发表于 2011-12-22 19:40:46 | 显示全部楼层 |阅读模式
最近在用CEGUI做界面,我想实现这样一个过程:显示CEGUI界面——点击界面上的按钮——画面跳转到显示OSG的模型

刚开始学,查了很多地方都没有这方面的教学资料,请问大家有什么经验?谢谢~

我现在只会显示CEGUI的界面,但是不知道事件的函数要怎么写,才可以让它显示出OSG的渲染场景。

该用户从未签到

发表于 2011-12-23 09:31:35 | 显示全部楼层
简单的,你处理按钮事件时,把你要显示的模型加到root下

该用户从未签到

 楼主| 发表于 2011-12-26 17:26:50 | 显示全部楼层
fenma3422 发表于 2011-12-23 09:31
简单的,你处理按钮事件时,把你要显示的模型加到root下

我还是不太会,有没有什么例子可以学习?我搜了网上很多资料,除了osg自带的那个与cegui的例子之外,好像就没什么别的例子了,觉得学起来很困难啊。

该用户从未签到

发表于 2011-12-26 17:32:02 | 显示全部楼层
cegui的事件处理采用的回调机制,如果对cegui不太熟,可以参考cegui自身所带例子。

该用户从未签到

 楼主| 发表于 2012-2-14 11:07:11 | 显示全部楼层
本帖最后由 xzll77 于 2012-2-14 11:08 编辑
fenma3422 发表于 2011-12-23 09:31
简单的,你处理按钮事件时,把你要显示的模型加到root下


我试了你说的方法,编译没问题,但是运行时候会报错。

这是我的事件响应函数:
  1. bool CEGUIDrawable::Handlebutton(const CEGUI::EventArgs& args)
  2. {
  3. osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile("cow.osg");
  4. m_pSceneRoot->addChild(loadedModel.get());
  5. return true;
  6. }
复制代码
我把主函数的根节点传递到事件响应函数里面,当我点击按钮时,就把模型节点挂到根节点下,这样有问题么?

该用户从未签到

发表于 2012-2-16 15:17:20 | 显示全部楼层
你在这个回调里处理其它节点显然不合适吧~~~

该用户从未签到

发表于 2012-10-26 09:45:46 | 显示全部楼层
顶一下,请问这个要怎么实现

该用户从未签到

发表于 2012-10-26 10:59:23 | 显示全部楼层
我现在也在搞cegui与osg这个 楼主你弄好了这个了吗? 有没有回的 求教教

该用户从未签到

发表于 2012-10-26 11:05:15 | 显示全部楼层
w910916 发表于 2012-10-26 10:59
我现在也在搞cegui与osg这个 楼主你弄好了这个了吗? 有没有回的 求教教

论坛上一搜一大堆

该用户从未签到

发表于 2012-10-26 11:13:52 | 显示全部楼层
liuzhiyu123 发表于 2012-10-26 11:05
论坛上一搜一大堆

...是找了一大堆 全是问题,,,,,,擦,   我现在可以在osg里面显示我的cegui 而且也能够响应我的界面响应事件函数. 我怎么才能使我的界面能够控制场景呢  比如点击一个按钮 其中的一个场景不显示呢

该用户从未签到

发表于 2012-10-29 10:08:00 | 显示全部楼层
在cegui的回调里处理不就好了,您是哪里出现了问题?
还有osgRecipes上面的CEGUI和MYGUI结合已经很完善了,可以直接用

该用户从未签到

发表于 2013-3-11 13:51:49 | 显示全部楼层
学习啦!!!谢啦

该用户从未签到

发表于 2014-5-12 10:09:00 | 显示全部楼层
楼主,问题解决了么,我也有相同的问题,新人求指导~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表