![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
osgEarth
小王大你
了解过OSG/osgEarth,QT,MFC,工业相机,地理信息系统,计算机仿真
展开
-
在osgEarth中通过三维模型的LOD显示来提高系统的帧率的解决方法
在osgEarth程序的开发过程中,为了提高系统的帧率和运行效率,需要对三维模型进行LOD优化处理。如果在osgEarth中直接加载三维模型,当三维模型的数量很多时,会消耗大量的计算机内存,这是个不可取的做法。使用LOD方法处理大量三维模型时,能提升系统的帧率和运行效率,使用LOD加载三维模型如图1所示,使用LOD卸载三维模型如图2所示。 ...原创 2020-05-03 20:32:20 · 3263 阅读 · 0 评论 -
osgearth相机设置裁剪区问题的解决方案
在osgearth程序的开发过程中,遇到了osgearth相机设置裁剪区的问题,实现的效果并不理想,如图1所示。解决方案是添加关键代码如下:view->getCamera()->addCullCallback( new osgEarth::Util::AutoClipPlaneCullCallback(mapNode) );最后成功解决,效果如图2所示。...原创 2020-05-16 19:49:47 · 1445 阅读 · 0 评论 -
解决osgearh程序运行后对象变形的问题
首先来看一张图,如图1所示。图1 变形的地球模型 由图1可知,地球模型严重变形,后来发现造成这种问题产生的原因是没有创建对称的透视投影。解决方法是:通过获取视图的主摄像头,并创建对称的透视投影。关键代码如下:view->getCamera()->setProjectionMatrixAsPerspective(30.0f...原创 2020-05-15 21:29:44 · 571 阅读 · 0 评论 -
osgEarth实现三维场景中HUD的显示
在osgearth的三维场景中,为了实现添加项目名称或者其他固定在屏幕某一位置的内容,可以采用HUD技术进行开发。本文以添加项目名称“三维仿真系统”为例,实现了osgearth三维场景中HUD的显示,实现效果如图1所示。在开发的过程中,由于涉及到文字的添加,还需要利用OSG提供的osgText类进行文字的相关设置。osgEarth实现文字的HUD显示关键代码如下:osg::re...原创 2020-05-05 12:10:32 · 1591 阅读 · 0 评论 -
实现osgEarth三维仿真场景模型雾的效果的添加解决方法
在osgearth项目开发的过程中,为了实现逼真的三维场景可视化效果,需要对模型进行雾化处理,从而实现雾的自然天气情况模拟。实现的效果如图1所示。实现osgearth三维仿真场景模型雾的效果的添加关键代码如下:fog->setMode(osg::Fog::LINEAR); fog->setStart(500.0f); fog->setEnd(2500.0f); ...原创 2020-05-04 19:14:31 · 2449 阅读 · 1 评论 -
osgEarth全球雾效的实现解决方法
为了模拟全球雾效,可以利用osgEarth着色器合成实现,通过引入VirtualProgram属性执行运行时着色器合成,实现覆盖场景图中较高位置的着色器。实现效果如图1所示。 图1 全球雾效实现osgEart...原创 2020-05-04 17:21:19 · 1653 阅读 · 1 评论 -
osgEarth加载三维模型后纹理太暗的问题解决方法
在项目的开发过程中,遇到了osgEarth加载三维模型后纹理太暗的问题,如图1所示。 图1 加载三维模型经过分析,出现问题的原因是没有关闭三维模型的光照,解决方法是添加如下代码:model->g...原创 2020-05-03 19:23:18 · 2477 阅读 · 0 评论