在处理大规模场景时,提示 内存不足!

Nicky-Wu 2011-08-02 04:42:41
本人使用八叉树实现室外的大规模场景管理,架构基本上出来,在随机载入130kb左右的3ds格式的模型文件1000个时,电脑会提示“内存不足!”请问有什么方法能够解决该问题?还有在载入大量模型计算量较大(即构造场景八叉树),耗费较多的时间,敢问各位高手有啥方法可处理?(本人疑问:起线程是否有用?)
...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nicky-Wu 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 smwhotjay 的回复:]

首先你机器硬件内存有多少. 搞3d 没2g内存别搞了. 显卡不行.3d也别搞了.那个跑的慢.

3ds格式的模型文件1000个. 是同一个文件还是.. 同一个文件3ds又是静态的.完全可以同一个模型draw 1000次嘛。 只占一份文件内存.
[/Quote]

2g内存,ATM 1g的显卡!应该不是3ds文件载入的问题,我使用同一种3ds文件,只需载入到内存一次,可能主要实在创建八叉树的过程中,开辟空间造成的!
Nicky-Wu 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 longlongagoimboy 的回复:]

1000个130KB也就是130MB嘛,也不多啊。
你看一下载入900个时的程序占用内存是多少?是不是有些用完了没释放?
[/Quote]

可能吧!我再看看代码!
Nicky-Wu 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhouzhipen 的回复:]

引用 2 楼 fandh 的回复:
用线程也解决不了!必须分开处理!

除了fandh提出的方法外,我再补充一下,如果是系统提示“内存不足”,大多数是在申请内存时申请大小有问题,并不是真正的内存不足,在WINDOWS系统上,你很难系统真正的内存不足,物理内存用完了还有虚拟内存,虚拟内存用完了,系统会自动再扩展。
出在这种提示要检查 new 的地方,比如 p=new (-1) 或 p=ne……
[/Quote]

ok 我再看看!不过在创建八叉树的时候确实用new开辟了较多的空间!
smwhotjay 2011-08-02
  • 打赏
  • 举报
回复
首先你机器硬件内存有多少. 搞3d 没2g内存别搞了. 显卡不行.3d也别搞了.那个跑的慢.

3ds格式的模型文件1000个. 是同一个文件还是.. 同一个文件3ds又是静态的.完全可以同一个模型draw 1000次嘛。 只占一份文件内存.
Jimmy_Xia 2011-08-02
  • 打赏
  • 举报
回复
1000个130KB也就是130MB嘛,也不多啊。
你看一下载入900个时的程序占用内存是多少?是不是有些用完了没释放?
zhouzhipen 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fandh 的回复:]
用线程也解决不了!必须分开处理!
[/Quote]
除了fandh提出的方法外,我再补充一下,如果是系统提示“内存不足”,大多数是在申请内存时申请大小有问题,并不是真正的内存不足,在WINDOWS系统上,你很难系统真正的内存不足,物理内存用完了还有虚拟内存,虚拟内存用完了,系统会自动再扩展。
出在这种提示要检查 new 的地方,比如 p=new (-1) 或 p=new (size)但size没有初始化这些情况就会提示“内存不足”,而且这种提示只有MFC才会有。
fandh 2011-08-02
  • 打赏
  • 举报
回复
用线程也解决不了!必须分开处理!
fandh 2011-08-02
  • 打赏
  • 举报
回复
分开处理!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧