8,将0级简模文件和精模文件同时放入pagedlod

正如前面所言,PagedLod是设置文件名称列表,中心点和距离列表的方式,控制相应文件的加载和卸载。

我们看下对于4个滑翔机形成的精模文件和牛形成的简模文件,如何用PagedLod组织起来。

再回顾下

复制代码
plod->setCenter(osg::Vec3(0, 0, 0));
plod->setFileName(0, strLevel0DetailModelFileName);
plod->setRange(0, 0, 50);
plod->setFileName(1, strLevel0SimpleModelFileName);
plod->setRange(1, 50, FLT_MAX);

运行结果如下、

远处

拉近:

代码如下:

#include <osgViewer/Viewer>

#include <osg/Node>

#include <osgdb/ReadFile>

#include <osgDB/WriteFile>

#include <osg/PagedLod>

#include <osgGA/TrackballManipulator>

int main()

{

int rootIndex = 0;

int level = 0;

std::string strRootDir = "d:/test/lod/";

std::string strLevelDir = strRootDir + std::to_string(level) + "/";

std::string strLevel0DetailModelFileName = strLevelDir + "root_" + std::to_string(rootIndex) + "_detail.osg";

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

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

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

plod->setFileName(0, strLevel0DetailModelFileName);

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

plod->setFileName(1, strLevel0SimpleModelFileName);

plod->setRange(1, 50, FLT_MAX);

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

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
扶尔魔ocy16 天前
【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 个月前
9,0级建模文件和0级精模文件写成根节点
osg
directx3d_beginner8 个月前
5,保存4个一级节点
osg