Osg资料

1.OSG资料整理

  • osg动态加载节点LOD,PagedLOD,数据分页
 osg::ref_ptr<osg::Node> PagedLODTest::CreateNode()
{
	osg::ref_ptr<osg::Group> _root = new osg::Group;
 
	osg::ref_ptr<osg::PagedLOD> page = new osg::PagedLOD;
	//设置中心位置
	page->setCenter(osg::Vec3(0.0f,0.0f,0.0f));
 
	//添加节点,设置0级的内容为牛
	page->setFileName(0,"cow.osg");
	//设置可是变化范围为0到50
	page->setRange(0, 0.0f, 50.0f);
 
	//添加滑翔机
	page->setFileName(1, "glider.osg");
	//可视范围为50到100
	page->setRange(1, 50.0f, 100.0f);
 
	//添加另外的一个节点
	page->setFileName(2, "cessna.osg");
	//可视范围100,200
	page->setRange(2, 100.0f, 200.0f);
 
	_root->addChild(page.get());
 
	return _root.get();
 } >可以设置viewer->getDatabasePager()->setUpThreads(10,8);  设置数据分页管理调度线程数,这里设置是总计10个线程,http网络处理是8个线程,同时可以有8个线程从pagelist取出要加载的requestdata;
  • osgUtil::LineSegmentIntersector进行碰撞检测
  • 保存*.osg格式的自定义几何节点,不要加META_NODE宏,否则保存不上
  • osg格式的纹理图片与文件相对位置正确,即可正常读到场景中,可以设置预读(osgpoxy)和预编译
  • osg用户数据,必须从reference继承来
  • mongo数据库单个文档最大16M

参考:

  1. OSG自带examples简介
  2. 用OSG结合数据库实现三维地理信息动态Map管理
  3. 地形DEM的等高程分级色彩渲染
  4. osgUtil::LineSegmentIntersector进行碰撞检测
  5. OpenSceneGraph FAQ 以及OSG资源
  6. 你的PagedLOD 为什么没有卸载
  7. osg格式文件
  8. 序列化支持