查看: 2456|回复: 6

OSG最大节点数量的限制

[复制链接]

该用户从未签到

发表于 2011-4-13 15:20:20 | 显示全部楼层 |阅读模式
集装箱码头堆场上存在1万个箱子,用VC的ADO把ACCESS中的1万条记录读入程序,对应每条记录读入一个IVE模型,模型为简单的BOX。Node先加入transform,再加入场景。
从测试结果来看,3000个箱子大概在30帧左右,4000个程序就崩溃了。
两个问题:
1 OSG的渲染效率:按照三角面来算,每个箱子12个三角面,4000个箱子就是4.8万个面,我认为OSG渲染这么多面应该没什么问题,为什么程序崩溃;
2   OSG允许最大多少个节点?

另外,不知道能否根据CPU、显卡、内存来粗略估计最大渲染的免片数?

该用户从未签到

发表于 2011-4-13 17:36:34 | 显示全部楼层
不清楚你的问题出在哪里,不过如果你每个纪录对应的transform都添加同一个node来作为子节点,是不是就不会出现问题了呢?

该用户从未签到

 楼主| 发表于 2011-4-13 21:01:59 | 显示全部楼层
实验了下,最多加载3953个箱子,出现“nvogldc invisible”错误,显卡不行?

该用户从未签到

发表于 2011-4-14 08:31:26 | 显示全部楼层
我想这主要是因为您的Drawable数量太多了,一个Drawable等同于在显示卡OpenGL端构建了一个显示列表。而显示列表是不能无限构建下去的,它受限于显卡的性能。

您可以尝试把所有的箱子都放在一个Drawable里面去显示,这样一般的显卡渲染百万个点是没有什么问题的

该用户从未签到

 楼主| 发表于 2011-4-14 12:19:19 | 显示全部楼层
array说的很正确,多谢
实验过程:一次读入5种类型箱子,按照箱型随机选择对应osg::node加入箱子对象的transform中,10000个箱子渲染很流畅,

该用户从未签到

发表于 2011-4-14 19:05:55 | 显示全部楼层
了解下

该用户从未签到

发表于 2011-11-2 09:58:24 | 显示全部楼层
本帖最后由 wanghuisoftware 于 2011-11-2 09:59 编辑

回复 5# 湖面之舟


    你是放到一个Drawable中吗?或者能详细的说一下你的场景组织结构吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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