OSG 数据预加载

osg 默认数据是被cull到,才会加载的,如果需要在程序启动时就加载,但启动后并不一定需要看到该模型,这种需求,怎么实现? 


        查了大量资料,还是国外的OpenSceneGraph论坛比较强大,有人问到,国内论坛已经死掉了,不再维护。大致的解决方法,就是使用osgUtil::IncrementalCompileOperation,来预编译资源。


大体步骤:

1. 从Viewer获取 osgUtil::IncrementalCompileOperation的指针:

 osgUtil::IncrementalCompileOperation* pIcompOperation = viewer.getIncrementalCompileOperation();

2. 创建 创建compileSet:

osg::ref_ptr<osgUtil::IncrementalCompileOperation::CompileSet> compileSet = osgUtil::IncrementalCompileOperation::CompileSet(NODE,true);

3. 从CompileCompletedCallback派生新类,然后重写Completed函数,在内部隐藏节点:

4. 将 派生类 绑定到 compileSet。

compileSet->compileSet->_compileCompletedCallback =  newCompileCompletedCallback;

5. 设置 IncrementalCompileOperation 过期策略

pIcompOperation->setCompileAllTillFrameNumber(50);



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值