osg模型操作之分页细节层次

分页细节层次:

  由osg::pagedLOD : osg::LOD : osg::Group : osg::Node : osg::Object : osg::Referenced的继承。

  它也是一个细节层次节点,用于实现动态分页加载,根据视点来加载所需要的,分页细节层级节点中还可以包含LOD节点。它与osg::LOG的区别是:osg::LOD节点存在于一个文件中,而osg::PagedLOD的每个节点都是磁盘文件,可以根据需求加载这些文件,加载过程中有单独的线程负责实时调度和加载。

  分页细节层次节点主要用来处理大规模的数据,在地形和GIS方面有广泛的应用。可以把模型进行预处理,在渲染场景时,再根据来加载这些数据以及卸载一些无用的数据。

相关示例:

  

  

  在示例中,我们把pagedLOD节点写到磁盘上,以便和上一篇的示例进行对比。通过比较看出,osg::LOG节点存在一文件中,而PagedLOD节点只提供索引的作用,每个LOD节点存在于磁盘文件中,但不把文件存在一个文件中。

 

转载于:https://www.cnblogs.com/airduce/p/9621348.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
osg(OpenSceneGraph)是一个开源的3D图形引擎,支持多种平台和操作系统,包括Windows、Linux、macOS等。如果您想在osg中添加骨架和动画模型,可以按照以下步骤进行操作: 1. 导入模型:使用osgDB库中的readNodeFile函数,将模型文件导入到场景图中。例如,可以使用以下代码导入.obj格式的模型文件: ``` osg::Node* model = osgDB::readNodeFile("model.obj"); ``` 2. 添加骨架:osg中的骨架是通过osgAnimation库实现的。可以使用Skeleton类创建骨架,并将其添加到模型节点中。例如,可以使用以下代码创建骨架: ``` osg::ref_ptr<osgAnimation::Skeleton> skeleton = new osgAnimation::Skeleton; ``` 然后,将骨架添加到模型节点中: ``` osgAnimation::UpdateSkeletonVisitor* visitor = new osgAnimation::UpdateSkeletonVisitor; model->accept(*visitor); model->setUpdateCallback(new osgAnimation::UpdateSkeletonCallback(skeleton.get())); ``` 3. 添加动画:osgAnimation库支持多种动画格式,包括.osg、.ive、.osgAnimation等。可以使用AnimationManager类加载动画文件,并将其应用到骨架上。例如,可以使用以下代码加载动画文件: ``` osg::ref_ptr<osgAnimation::AnimationManager> manager = new osgAnimation::AnimationManagerBase; osgDB::Registry::instance()->loadAnimationObject("animation.osganimation", manager.get()); ``` 然后,将动画应用到骨架上: ``` osg::ref_ptr<osgAnimation::Animation> animation = manager->getAnimation(0); animation->setPlayMode(osgAnimation::Animation::LOOP); osgAnimation::AnimationUpdateCallback* ac = new osgAnimation::AnimationUpdateCallback; ac->setAnimation(animation.get()); skeleton->setUpdateCallback(ac); ``` 以上是添加骨架和动画模型的大致操作流程。具体实现要根据您的需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值