查看: 1349|回复: 6

OSG复杂模型运行问题请教帖

[复制链接]

该用户从未签到

发表于 2013-6-18 13:15:45 | 显示全部楼层 |阅读模式
在调用一个复杂的地形模型(约400M)时若采用带跟踪观察某运动物体的相机节点(nodetrackermanipulator),则程序在viewer.frame()处跳出,错误是访问内存地址0x0c000000非法,内部语句执行到state.cpp中的dirtyallvertices()函数;若保持该复杂地形,换用trackballmanipulator则顺利执行;若保持nodetrackermanipulator不变,但换用小地图(5M左右)也顺利执行,且通过设置断点发现内部并不执行state.cpp中的dirtyallvertices()函数。内存使用在75%左右,请教各位大神原因,谢谢~~另外看到一个示例程序也是用的该地形和nodetrackermanipulator,但其中对viewer添加了一个statesetmanipulator,可以顺利执行,不知是不是这个原因?statesetmanipulator的作用又是什么呢?

该用户从未签到

发表于 2013-6-19 21:59:35 | 显示全部楼层
这样给出信息是无法判断什么的,我只能猜测是您的数据存在某些问题
还有StatesetManipulator的作用是实时改变场景的一些全局渲染状态,比如按L关闭光照,按T关闭纹理等

该用户从未签到

 楼主| 发表于 2013-6-21 00:19:16 | 显示全部楼层
array 发表于 2013-6-19 21:59
这样给出信息是无法判断什么的,我只能猜测是您的数据存在某些问题
还有StatesetManipulator的作用是实时改 ...

谢谢array斑竹,这几天采用复杂地形时,发现程序运行起来动画播放正常,但若用鼠标拉近与观察物体(在地面运动)的距离,则程序就会跳出,都是内存地址访问出错的问题,若不操作,则一切正常,所以是否模型太大导致程序的内存不够用了呢?处理这种超大模型时有没有减轻机器负担的好方法呢?再次万分感谢array大神的指教~~

该用户从未签到

发表于 2013-6-24 18:14:41 | 显示全部楼层
您这么说,别人是无法判断什么的

该用户从未签到

 楼主| 发表于 2013-6-26 22:55:01 | 显示全部楼层
谢谢array斑竹,我再尝试尝试用cull节点裁剪掉一些不必要的场景对象~~

该用户从未签到

发表于 2013-6-27 09:02:34 | 显示全部楼层
内存占用过多,也会蹦

该用户从未签到

 楼主| 发表于 2013-7-2 18:42:37 | 显示全部楼层
fenma3422 发表于 2013-6-27 09:02
内存占用过多,也会蹦

有可能是这个原因,查看了一下任务管理器,VS下运行这个视景仿真的应用程序大约占用了1G的内存
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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