自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (8)
  • 收藏
  • 关注

原创 osgEarth的Rex引擎原理分析(七十九)如何加载百度、高德、谷歌、微软的在线地图

目标:(七十八)中的问题155瓦片生成后,就是一堆图片。怎么对这堆图片进行编号,是目前主流互联网地图商分歧最大的地方。总结起来分为四个流派:谷歌XYZ:Z表示缩放层级,Z=zoom;XY的原点在左上角,X从左向右,Y从上向下。 TMS:开源产品的标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。 QuadTree:微软Bing地图使用的编码规范,Z的定义与谷歌相同,.....................

2020-02-23 22:19:36 8904 7

原创 osgEarth的Rex引擎原理分析(七十八)TileNodeRegistry和LayerDrawable中_tiles的关系

目标:(七十二)中的问题150TileNodeRegistry中的_tiles本质是随机快速访问的结构体,主要用于管理rex引擎中活跃的瓦片,对于处于休眠的瓦片会进行标记,达到一定数量后,通过rex的卸载器进行卸载。osgEarthDrivers/engine_rex/TileNodeRegistrytypedef RandomAccessTileMap TileNodeMap;Ti...

2020-02-15 14:15:35 442

原创 osgEarth的Rex引擎原理分析(七十七)rex引擎中绘制瓦片的调度过程原理

目标:(七十二)中的问题151主要是分析瓦片什么时候进入场景树,什么时候从场景树中移出1、初始化osgEarthDrivers/engine_rex/RexTerrainEngineNode.cppvoidRexTerrainEngineNode::dirtyTerrain(){ // Build the first level of the terrain. ...

2020-02-15 13:40:20 799

原创 osgEarth的Rex引擎原理分析(七十六)RexTerrainEngineNode和TerrainCuller中_terrain的关系

目标:(七十二)中的问题149RexTerrainEngineNode中的_terrain本质是osg::Group,主要是用来管理各级TileNode的。TerrainCuller中的_terrain本质是osgEarth::Drivers::RexTerrainEngine::TerrainRenderData,主要用来管理rex绘制的数据,包括绘制状态(当前帧号、绘制绑定等)、绘制图...

2020-02-14 22:02:59 390

原创 osgEarth的Rex引擎原理分析(七十五)rex的瓦片高程影像和高程文件中的影像尺寸如何对应

目标:(七十二)中的问题145高程层默认的尺寸大小为256*256osgEarth/TerrainLayer.cppvoidTerrainLayerOptions::setDefaults(){ _exactCropping.init( false ); _reprojectedTileSize.init( 256 ); _minLevel.init(...

2020-02-11 11:21:35 766

原创 osgEarth的Rex引擎原理分析(七十四)osgEarth::TerrainLayerOptions高程层选项中参数的含义

目标:(七十二)中的问题143主要用来说明高程、影像层的参数。osgEarth::TerrainLayerOptions高程层选项中参数的含义_tileSize(256):高程瓦片的默认大小_maxDataLevel(99):_minLevel(0):最小的LOD级别_maxLevel(23):最大的LOD级别待继续分析列表:9、earth文...

2020-02-11 10:51:37 678

原创 osgEarth的Rex引擎原理分析(七十三)从高程文件读取的高程信息如何填充rex的高程瓦片

目标:(七十二)中的问题147高程文件的划分规则和rex瓦片是不一样的,高程文件的0级就是文件本身,不管文件实际范围多大,然后采用二分法逐级增加。rex瓦片的0级对应整个地球表面。两个范围一般不是一一对应的,秘密尽在1、首先根据rex瓦片的范围从高程文件中找出相交的高程文件瓦片(该瓦片不同于rex瓦片,是和高程文件对应的瓦片,瓦片尺寸和rex瓦片最为接近)2、从相交的高程文件瓦片构...

2020-02-11 10:20:40 985

原创 osgEarth的Rex引擎原理分析(七十二)如何从高程影像变成高程网格

目标:(七十一)中的问题143有两种方法:1、对高程影像进行采样,用采样值来设置高程,通过CPU实现2、通过着色器来实现,在GPU上进行操作待继续分析列表:9、earth文件中都有哪些options((九)中问题)10、如何根据earth文件options创建不同的地理信息引擎节点((九)中问题)...

2020-02-08 07:54:14 742

原创 osgEarth的Rex引擎原理分析(七十一)高程瓦片的绘制过程

目标:(五十五)中的问题1421、在RexTerrainEngineNode遍历时生成renderleaf,其中的drawable为LayerDrawable(其对应earth文件中每一个高程、影像层)。在TerrainCuller进行遍历时,会对LayerDrawable添加实际瓦片对应的高程影像纹理,这样绘制出来就能看到高程影像效果了。osgEarthDrivers/engine_r...

2020-02-06 09:53:16 751

原创 osgEarth的Rex引擎原理分析(七十)TileRenderModel中的RenderingPass和RenderBindings

目标:(五十五)中的问题141TileRenderModel中的RenderingPass和RenderBindingsRenderingPass渲染通道主要存放Samplers采样器列表,采样器存放的是用来渲染影像、高程的纹理和矩阵RenderBindings渲染绑定用来存放SamplerBinding采样器绑定,每个采样器绑定记录采样器的名字(对应glsl文件中的uniform变量...

2020-02-06 09:41:12 336

原创 osgEarth的Rex引擎原理分析(六十九)状态树和渲染树的关系

目标:(五十五)中的问题140状态树和渲染树的建立是在CullVisitor中完成的。状态树你可以看成是一个二叉树,非叶子节点StateGraph和叶子节点ReaderLeaf组成,然后一个ReaderLeaf你可以看成有一个Drawable对象,但是场景渲染的是渲染树,状态树只是为了好转换成渲染树而存在的。 渲染树你也可以看成一棵二叉树,RenderStage(渲染台)是根节点,Rende...

2020-02-06 09:38:09 393

原创 osgEarth的Rex引擎原理分析(六十八)stateset中的adduniform、setTextureAttribute等最后是如何反应到opengl上的

目标:(五十五)中的问题139秘密在于(真正是在渲染时做的)osgUtil/RenderLeaf.cppvoid RenderLeaf::render(osg::RenderInfo& renderInfo,RenderLeaf* previous){ state.apply(rg->getStateSet()); state.apply(_parent...

2020-02-06 09:35:44 462

原创 osgEarth的Rex引擎原理分析(六十七)TileNode中的_surface(SurfaceNode)作用是什么

目标:(五十五)中的问题138每个瓦片TileNode都有一个_surface(SurfaceNode),这里面会存放瓦片的几何信息_drawable(TileDrawable),这个几何信息会传给DrawTileCommand,用于绘制该瓦片。osgEarthDrivers/engine_rex/TileNodeclass TileNode : public osg::Group,...

2020-02-06 09:29:34 402

原创 osgEarth的Rex引擎原理分析(六十六)DrawTileCommand中的采样器

目标:(五十五)中的问题137DrawTileCommand中的颜色采样器_colorSamplers和共享采样器_sharedSamplers的区别,能不能用一个。RenderBindings将采样器分为6个,前2个是颜色采样器,后4个是共享采样器。osgEarthDrivers/engine_rex/RenderBindingsenum Usage{ COLOR ...

2020-02-05 20:48:37 261

原创 osgEarth的Rex引擎原理分析(六十五)几个uniformmap的关系

目标:(五十五)中的问题136program中uniformmap(_uniformInfoMap)和stateset中的uniformlist(_uniformList)的关系以及state中的uniformmap(_uniformMap)1、program中uniformmap(_uniformInfoMap)在执行link的时候构造的,主要从shader文件中来,渲染遍历阶段...

2020-02-05 20:27:50 593

原创 osgEarth的Rex引擎原理分析(六十四)EngineContext的作用

目标:(五十五)中的问题135EngineContext的作用,主要是用来记录RexTerrainEngineNode方方面面的信息的。在rex引擎构建时,创建该上下文,并将引擎的四梁八柱信息都存放在该上下文环境中。osgEarthDrivers/engine_rex/RexTerrainEngineNodeclass RexTerrainEngineNode : public T...

2020-02-05 20:20:47 455

原创 osgEarth的Rex引擎原理分析(六十三)TerrainTileModel与TileRenderModel的关系

目标:(五十五)中的问题134TileRenderModel主要记录渲染各个瓦片的通道,一个通道对应一个可视化层(颜色、高层、法线等),每个瓦片TileNode都包含一个TileRenderModel。TileRenderModel在每个瓦片创建(有父TileNode情况下)/merge时进行构造每个LoadTileData请求中都包含一个TerrainTileModel。每个Ter...

2020-02-05 20:04:11 436

原创 osgEarth的Rex引擎原理分析(六十二)从earth文件加载高层图层的过程

目标:(五十五)中的问题133从earth文件加载高层图层的过程待继续分析列表:9、earth文件中都有哪些options((九)中问题)10、如何根据earth文件options创建不同的地理信息引擎节点((九)中问题)11、rex地理信息引擎的四梁八柱((九)中问题)12、osgEarth::TerrainEngineNode中setMap方法作用((十二)中...

2020-02-05 20:01:07 466

原创 osgEarth的Rex引擎原理分析(六十一)如何提取出指定范围的高程网格

目标:(五十五)中的问题132如果从dem/img等文件中提取出指定范围的高程网格,需要用到gdal库进行读取。遥感影像一般包含至少一个波段,波段对应波长,比如红、绿、蓝等,也包含透明度。osgEarthDrivers/gdal/ReaderWriterGDAL.cpposg::HeightField* createHeightField( const TileKey&amp...

2020-02-05 19:57:04 991

原创 osgEarth的Rex引擎原理分析(六十)TileNode与DrawTileCommand的关系

目标:(五十五)中的问题131TileNode与DrawTileCommand的关系DrawTileCommad的几何图形和瓦片编号从TileNode来,最终绘制是用DrawTileCommand的draw函数来实现的,DrawTileCommand还包含影像和高程纹理。TileNode参与场景图的构建工作。rex引擎的的裁剪(TerrainCuller)和osg的裁剪(CullVis...

2020-02-05 18:06:16 269

原创 osgEarth的Rex引擎原理分析(五十九)rex引擎如何将瓦片构造成地球形状

目标:(二十五)中的问题79秘密就在于convertLocalToModel函数,它会根据不同的投影方式生成瓦片的顶点osgTerrain/Locator.cppbool Locator::convertLocalToModel(const osg::Vec3d& local, osg::Vec3d& world) const{ switch(_coord...

2020-02-05 17:47:10 447

原创 osgEarth的Rex引擎原理分析(五十八)osgEarth::ShaderFactory osgEarth::ShaderLoader关系

目标:(五十四)中的问题130osgEarth::ShaderFactory osgEarth::ShaderLoader关系ShaderFactory主要用来产生各个着色器阶段的main函数,一般用户不需要直接使用它,除非有特殊的定制需要。用户只需要创建和使用VirtualProgram就可以了。ShaderFactory对象存放在osgEarth的注册表中。ShaderLoader...

2020-02-05 17:34:33 551

原创 osgEarth的Rex引擎原理分析(五十七)osgEarth中多个着色器的源代码的编译链接过程

目标:(五十四)中的问题129osgEarth中多个着色器的源代码的编译链接过程1、先一个一个编译void Shader::PerContextShader::compileShader(osg::State& state){ _extensions->glShaderSource( _glShaderHandle, 1, &sourceText,...

2020-02-05 17:32:22 491

glview631-setup.exe

直观的查看支持的OpenGL的特性和扩展,你也可以下载OpenGL Extensions Viewer,这个软件也有多个平台的版本。

2021-08-15

osgAndroidExampleGLES2重新组织TestNativeCPlusPlus

osgAndroidExampleGLES2是Eclipse下工程文件,理论上Android Studio也是可以打开执行的,但由于种种原因,无法在Andoid Studio上执行。该程序完全基于Android Studio,用CMake组织C++代码,用Gradle作为构建工具,对osgAndroidExampleGLES2进行了重新配置,可以Android Studio3.5上运行、调试。

2021-06-19

NVIDIA_Nsight_Tegra_Release_3.6.19217.7511.exe

NVIDIA® Nsight™ Tegra®, Visual Studio Edition brings Microsoft Visual Studio to Android, allowing for seamless GDB and JDB remote debugging to all Android devices capable of native application debugging, supporting all Android ABIs – ARM v7, ARM v8, x86, x64.

2021-02-11

wgl相关函数.pdf

wgl是Windows操作系统和OpenGL做交互的一系列扩展api,该文档提供了wgl相关函数及其使用说明。

2020-05-31

mapx功能说明

对mapx的功能有很详细的说明,是开发地理信息系统的一个很好插件

2012-02-23

google输入法

很好用的输入法软件,可以方便的在中英文之间切换,并且字库的命中率也相当高

2008-07-13

瑞星最新杀毒

瑞星最新出的杀毒软件

2008-02-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除