1, pagedlod和lod

简而言之,lod是根据距离或者显隐物体,PagedLod是根据距离加载或者卸载物体。(也有按像素点的,这个暂时不考虑)

所以,pagedlod只需要三步

1,中心点

1,距离

2,物体名称

这里先设置始终能看到,即距离( 0, FLT_MAX)

即

复制代码
osg::ref_ptr<osg::PagedLOD> plod = new osg::PagedLOD;
plod->setFileName(0,strName);
plod->setCenter(osg::Vec3(0, 0, 0));
plod->setRange(0, 0, FLT_MAX);

先出现一头牛

全部源码如下:

#include <osgViewer/Viewer>

#include <osg/Node>

#include <osgdb/ReadFile>

#include <osg/PagedLod>

#include <osgGA/TrackballManipulator>

int main()

{

osg::ref_ptrosgViewer::Viewer viewer = new osgViewer::Viewer;

std::string strName = "D:/install/osg365_oe210_vs2019/OpenSceneGraph-Data/cow.osg";

osg::ref_ptrosg::PagedLOD plod = new osg::PagedLOD;

plod->setFileName(0,strName);

plod->setCenter(osg::Vec3(0, 0, 0));

plod->setRange(0, 0, FLT_MAX);

viewer->setSceneData(plod);

osg::ref_ptr< osgGA::TrackballManipulator> manip = new osgGA::TrackballManipulator();

复制代码
// 设置自定义的初始位置:眼睛位置、观察点、向上向量
manip->setHomePosition(
	osg::Vec3d(0.0, -100.0, 5.0),   // 眼睛位置
	osg::Vec3d(0.0, 0.0, 0.0),      // 观察中心
	osg::Vec3d(0.0, 0.0, 1.0),       // 向上向量(Z轴向上)
	false                            // 不自动计算
);

viewer->setCameraManipulator(manip);
return viewer->run();

}

相关推荐
扶尔魔ocy3 天前
【qt openGL入门笔记】windows编译MinGW版本的osgearth(2.10.1)
qt·opengl·osg
扶尔魔ocy4 天前
【QT OpenGL】知识点编目及传送门
qt·opengl·osg
扶尔魔ocy17 天前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行并进行态势标绘(四)
qt·opengl·osg
扶尔魔ocy19 天前
【qt openGL入门笔记】OSG实现显示飞机模型飞行的点迹(二)
qt·opengl·osg
扶尔魔ocy19 天前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行(三)
opengl·osg
扶尔魔ocy20 天前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行
qt·opengl·osg
directx3d_beginner8 个月前
10,cookbook的lod示例
osg
directx3d_beginner8 个月前
8,将0级简模文件和精模文件同时放入pagedlod
osg
directx3d_beginner8 个月前
9,0级建模文件和0级精模文件写成根节点
osg
directx3d_beginner8 个月前
5,保存4个一级节点
osg