|
刚接触OSG,请各位帮忙看一下,现在我的系统整个场景由150段小场景拼接而成,采用pagedlod处理场景加载,当我加载到一定数目的场景时(比如第60段),后面的场景就显示不出来,在场景的加载过程中,内存一直在升不降,想问一下是不是pagedlod没有释放内存,是不是由于没有达到pagedlod默认的数目(比如300)就不进行释放?源代码如下:
{
CString str;
loadSegmentNum = 150;
osg::ref_ptr<osg:agedLOD> lod=new osg::PagedLOD;
for(int i=1;i< loadSegmentNum;i++)
{
if (i<10)
str.Format(L"station0%d.ive",i); //分段车站模型加载
else
str.Format(L"station%d.ive",i);
mafString file = dataDir + str;
lod->setFileName(i-1,file.GetCharStr());
if (i==1)
{
lod->setRange(0,-1000,2000); //对不同段的车站模型进行范围显示设置
}
else
{
lod->setRange(i-1,(i-4)*1000-1000,(i-2)*1000);
}
}
m_RootNode->addChild(lod.get());
} |
|