osg之黑夜背景地月系显示

目录

效果

 代码


效果

 代码


/**
* Lights test. This application is for testing the LightSource support in osgEarth.
* 灯光测试。此应用程序用于测试osgEarth中的光源支持。
*/
#include "stdafx.h"
#include <osgViewer/Viewer>
#include <osgEarth/Notify>
#include <osgEarth/Lighting>
#include <osgEarth/PhongLightingEffect>
#include <osgEarth/NodeUtils>
#include <osgEarthUtil/EarthManipulator>
#include <osgEarthUtil/ExampleResources>
#include <osgEarthUtil/Ephemeris>
#include <osgEarthUtil/Shadowing>

#define LC "[lights] "

using namespace osgEarth;
using namespace osgEarth::Util;

int
usage(const char* name)
{
	OE_NOTICE
		<< "\nUsage: " << name << " file.earth" &
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OSGEarth中,你可以使用LOD(Level of Detail)技术来实现分层级显示模型。LOD技术可以根据观察距离和需要显示的细节级别,选择合适的模型来渲染,以提高性能和效率。 以下是在OSGEarth中使用LOD分层级显示模型的基本步骤: 1. 创建多个细节级别的模型:根据你的需求,创建多个不同细节级别的模型,例如高细节级别的模型和低细节级别的模型。 2. 设置LOD节点:使用OSG的LOD节点(osg::LOD)来组织不同细节级别的模型。LOD节点是一个容器,可以根据距离来选择合适的子节点进行渲染。 3. 设置距离范围和细节级别:为LOD节点的每个子节点设置距离范围和对应的细节级别。例如,当相机距离LOD节点较远时,选择低细节级别的模型进行渲染;当相机距离LOD节点较近时,选择高细节级别的模型进行渲染。 4. 添加LOD节点到场景图中:将LOD节点添加到OSGEarth的场景图中,以便在渲染时自动根据相机距离选择合适的模型进行显示。 下面是一个简单的示例代码,演示如何在OSGEarth中使用LOD分层级显示模型: ```cpp osg::ref_ptr<osg::LOD> lodNode = new osg::LOD; // 添加不同细节级别的模型 osg::ref_ptr<osg::Node> highDetailModel = createHighDetailModel(); osg::ref_ptr<osg::Node> lowDetailModel = createLowDetailModel(); lodNode->addChild(highDetailModel, 0.0, 100.0); // 设置高细节级别模型的显示范围 lodNode->addChild(lowDetailModel, 100.0, FLT_MAX); // 设置低细节级别模型的显示范围 // 将LOD节点添加到场景图中 osg::ref_ptr<osg::Group> root = new osg::Group; root->addChild(lodNode); // 创建Viewer和ViewerBase对象,渲染场景图 osgViewer::Viewer viewer; viewer.setSceneData(root); viewer.run(); ``` 在上面的示例中,我们创建了一个LOD节点 `lodNode`,并向其添加了两个子节点,分别是高细节级别的模型和低细节级别的模型。通过设置子节点的距离范围,我们指定了在不同距离下显示不同细节级别的模型。最后,我们将LOD节点添加到场景图中,并使用OSG的Viewer对象进行渲染。 这样,你就可以在OSGEarth中使用LOD分层级显示模型了。根据相机距离的变化,OSGEarth会自动选择合适的细节级别的模型进行渲染,以实现分层级的显示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值