查看: 1683|回复: 5

如何实现如3DMAX或者AutoCAD中的多视图效果?

[复制链接]

该用户从未签到

发表于 2010-9-5 16:08:05 | 显示全部楼层 |阅读模式
很久以前就想实现这个功能,后来没有去好好做,现在又想到这个功能了。
OSG中有个CompositeViewer,能够再开一个Viewer,但是Remove的时候老是出问题,所以单纯用这种方法可能不合理;
另外一个想法就是,MFC中同一个doc建立多个view,每个view对应OSG中的viewer,不知道可不可行,望大家讨论讨论,多谢
3DMAX.GIF

该用户从未签到

发表于 2010-9-6 08:29:57 | 显示全部楼层
两种方法都是可以的,removeView()的时候要注意先stopThreading(),执行操作后再startThreading()

该用户从未签到

发表于 2011-1-21 13:34:53 | 显示全部楼层
楼主这个功能实现了吗?我现在也需要实现这样的功能,如果成功的话可否分享一下经验?或者将代码发给我谢谢garyliyong@163.com

该用户从未签到

发表于 2011-3-31 18:03:34 | 显示全部楼层
pf...我用wxwidget作了个类似的东西,4个小窗口,结果打开vsync之后,刷新率就固定在15Hz了,刚好60/4...compositeviewer+4 view或者4个viewer都是这样。有遇到过类似情况的么?

该用户从未签到

发表于 2011-4-1 10:08:03 | 显示全部楼层
这个功能我尝试实现过,我用的是“湖面之舟”说的第二种方法,不过我是绑定的四个控件,然后动态改变的控件的大小OnSize函数和每个视点,来实现只显示一个或多个,这样来改变的view。对于第一种当时做的时候也遇到了困难,有空用Array说的方法试试。至于渲染速度当时没有测试,感觉对于一个物体,像3dmax那种建模的方式,似乎影响不大。

该用户从未签到

发表于 2011-4-1 12:51:30 | 显示全部楼层
可以看一看osgviewerQtContext的实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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