9,0级建模文件和0级精模文件写成根节点

根据以前章节所说,导出的文件是group,

此group组成

1,叶子节点

2,pagedlod

3,叶子节点和pagedLod的混合体

由于0级是由精模和简模通过pagedLod组成,所以,根节点是由0级的一个PagedLod组成,即

复制代码
osg::ref_ptr<osg::Group> grp = new osg::Group;
grp->addChild(plod);
osgDB::writeNodeFile(*grp, strOutputFileName);

输出的文件是root_0.osg

打开此文本

读取该文件

运行,

远处

拉近

代码如下:

#include <osgViewer/Viewer>

#include <osg/Node>

#include <osgdb/ReadFile>

#include <osgDB/WriteFile>

#include <osg/PagedLod>

#include <osgGA/TrackballManipulator>

int main()

{

int rootIndex = 0;

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

std::string strOutputFileName = strRootDir + "root_" + std::to_string(rootIndex) + ".osg";

#if 1

int childLevel = 0;

std::string strChildLevel = std::to_string(childLevel);

std::string strLevel0DetailModelFileName = strChildLevel + "/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_ptrosg::Group grp = new osg::Group;

grp->addChild(plod);

osgDB::writeNodeFile(*grp, strOutputFileName);

#else

osg::ref_ptrosg::Node node = osgDB::readNodeFile(strOutputFileName);

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

viewer->setSceneData(node);

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();

#endif

}

相关推荐
directx3d_beginner1 天前
5,保存4个一级节点
osg
directx3d_beginner1 天前
1, pagedlod和lod
osg
CHPCWWHSU1 个月前
pointCloudExtractor:一个基于 osgPotree 的 Potree 点云数据提取工具
目标识别·osg·potree·点云提取
CHPCWWHSU2 个月前
CesiumforUnreal环境准备
c++·cesium·unreal·osg
妙为2 个月前
osgEarth中文显示乱码
中文乱码·osgearth·osg
CHPCWWHSU3 个月前
osg中文字的使用
osg·osgtext·text3d
CHPCWWHSU5 个月前
osg中相机矩阵到vsg相机矩阵的转换
opengl·osg·投影矩阵·vulkan·vsg
幽迷狂7 个月前
AFSIM入门教程03.03:更新所有依赖库版本
c++·qt·仿真·osgearth·osg·军事·afsim
星火撩猿10 个月前
如何配置osg编译使支持png图标加载显示
osgearth·osg·地图图标添加