osgearth论坛问题集锦.doc_第1页
osgearth论坛问题集锦.doc_第2页
osgearth论坛问题集锦.doc_第3页
osgearth论坛问题集锦.doc_第4页
osgearth论坛问题集锦.doc_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

怎么获取osgearth支持的影像数据下载到本地?刚接触osgearth,想请教大家:怎么获取osgearth支持的影像数据到本地,包括一些层级不高的不需要很精确的全球影像和层级较高的较清晰的部分城市的影像(像Google earth那样有地名的),以.earth文件中读取本地数据?谢谢大家!使用osgEarth的缓存插件,设置缓存路径就可以了这个方法知道,但不知道从哪可以获取到符合要求(类似Google earth 有位置标签)的影像数据。可以用谷歌地图下载器下载,然后使用GDAL插件加载可以用GDAL插件加载吗?好像不行哎,你试验成功过嚒?得修改GDAL插件? 图片是没有坐标的,所以得人为制定坐标包围盒? 这个看着有些抽象osgearth在局域网上的配置问题由于个人电脑不能上外网,所以只能在单位内部网络上自行加载地形和影像数据。在服务器端加载了地形和影像,客户端用.earth文件配置来读取,提示can not initialize TileSource for layer west.tif http:/192.168.150/world.tif http:/192.168.150/srtm.tif 我在服务器端没有编译gdal。客户端有编译好的gdal。请各位指点一下,谢谢!建议看一下gdal插件是否支持联网读取tif,大的tif不建议联网读,tms 和 vpb的ive使用联网读取比好好如何获取读入的栅格图片的坐标范围通过gdalOption 读入 一块栅格图片 , 请问如何获得 该栅格图片的坐标范围osg:Image* createImage( const TileKey& key, ProgressCallback* progress )创建瓦片的时候,你可以通过TileKey获取图片的层级及tile_x,tile_x,通过这些信息可以推算出图片的坐标范围OSGEARTH如何获取当前缩放的级别如题!有什么简单实用方法,我用profile里面的方法得到tilekey,再由tilekey来获取,感觉绕了一个弯子。我是这么在运动过程中调整模型姿态的当对一个物体进行先平移再旋转的操作时 ,目标是将物体沿 x轴正向平移 10个单位 ,再将物体自身绕z轴顺时针旋转 30度 ,但是在实际实施变换的过程中后 ,却得不到正确的结果.如图所示 ,图中水平垂直分别为 x, y坐标轴 , z坐标与纸面垂直.上一行是用户原来希望得到的结果 ,而下一行则是实际实施了变换之后得到的结果. 在osgearth中,无论使用以下哪种都会发生这种现象。/scale-postMult(osg:Matrix:rotate(osg:egreesToRadians(-90.0), 0, 1, 0);/locator-getLocator()-setOrientation(osg:Vec3d(-90, 0, 0);看到一篇osg论文,使用在每次变换前先将物体平移至世界坐标系的原点 ,实施变换之后再将物体进行反平移的方法,实验证明是好用的,代码如下:/获取场景节点 ,将其转换为 MatrixTransform类型const osg:Matrix m_matrix = scale-getMatrix(); /获得变换物体表面顶点矩阵const osg:BoundingSphere m_box = scale-getBound(); /获得变换物体的包围盒 ,从而获得物体的中心osg:Matrix preMat = osg:Matrix:translate(-m_box.center() ;osg:Matrix proMat = osg:Matrix:translate(m_box.center() ;osg:Matrix matrix1 = m_matrix * preMat; /将物体中心平移至世界坐标的原点osg:Matrix matrix2 = matrix1 * osg:Matrix:rotate(osg:egreesToRadians(-90.0), 0, 1, 0);/进行变换级联 ,采用先缩放后旋转再平移的顺序osg:Matrix matrix =matrix2 * proMat; /变换后再将物体移回scale-setMatrix(matrix) ; /将结果矩阵重新设回物体不知道是否有更好的方法,盼高手指点一般是遵循SRT遵循SRT(Scale/Rotate/Translate)是在模型刚添加进场景的时候,在实时仿真的时候,一般不会知道模型移动到哪里了,这样移动之后再旋转,就会出现之前说的问题。虽然问题可以解决,但是我不确定这种解决办法是不是最好的或最有效的,所以想请教各位大牛!我是这么在osgearth里头画线的线的画法和osg里头一样,可参看osggeometry.cpp,但是点的坐标需要经过转换,实践证明是可行的,应该也可以用到其它几何体上。新手上路,欢迎大牛们拍砖。这部分放在main()或者InitSceneGraph( void )中osg:ref_ptr geode = new osg:Geode();mRoot-addChild(geode);/测试画线osg:Vec3d startline(-155.150257, 63.390041, 220230);osg:Vec3d endline(-165.150257,63.390041, 0);createLine(startline, endline);void OSGEarthEngine:createLine(osg:Vec3d startline, osg:Vec3d endline) const SpatialReference* mapSRS = mapNode-getMapSRS(); / create Geometry object to store all the vertices and lines primitive. osg:ref_ptr linesGeom = new osg:Geometry(); / this time well preallocate the vertex array to the size we / need and then simple set them as array elements, 2 points / makes 1 line segments. osg:Vec3d startWorld; osg:Vec3d endWorld; osg:ref_ptr vertices = new osg:Vec3dArray(2); mapNode-getMap()-toWorldPoint( GeoPoint(mapSRS,startline), startWorld ); mapNode-getMap()-toWorldPoint( GeoPoint(mapSRS,endline), endWorld ); (*vertices)0 = startWorld; (*vertices)1 = endWorld; / pass the created vertex array to the points geometry object. linesGeom-setVertexArray(vertices); / set the colors as before, plus using the above osg:ref_ptr colors = new osg:Vec4Array; colors-push_back(osg:Vec4(1.0f,1.0f,0.0f,1.0f); linesGeom-setColorArray(colors); linesGeom-setColorBinding(osg:Geometry:BIND_OVERALL); / set the normal in the same way color. osg:ref_ptr normals = new osg:Vec3Array; normals-push_back(osg:Vec3(0.0f,-1.0f,0.0f); linesGeom-setNormalArray(normals); linesGeom-setNormalBinding(osg:Geometry:BIND_OVERALL); / This time we simply use primitive, and hardwire the number of coords to use / since we know up front, linesGeom-addPrimitiveSet(new osg:rawArrays(osg:rimitiveSet:INES,0,2); / add the points geometry to the geode. geode-addDrawable(linesGeom);请教在earth文件中使用ive数据显示精度不足的问题 false .osgearth_cache .earthearth.ive ive是自己用8片tif处理的,但是调入earth文件之后,绘制效率比直接调入tif快但显示精度就明显差了不少,比直接看ive地形就差得更远,不知道是为什么好像最精细的层级都没有显示出来,求各位大神指教建议你参照一下tests下面关于vpb的例子osgearth如何识别vpb生成的地形模型问题一直都在用vpb制作.ive格式的地形模型,不知如何将其转换为osgearth能识别的mapnode节点,谢谢!使用osgearth的vpb插件请教多分辨率影像融合的情况怎样处理使用gdal加载两张地球影像为一个image图层,原始影像为一个低分辨率的全球影像,加一个1.2米分辨率的局部影像,.earth文件如下: E:WORKResourceimage tif 结果如下图,请教这种多分辨率影像融合的情况怎样处理请用seed例子,把tif处理成tms,或者用vpbosgearth 高程显示的问题osgearth中可以用setenabled控制elevationLayer的显隐,但是如何做到elevationLayer隐藏后,高程立刻没有,elevationLayer显示后,高程立刻显示。新版这个问题已经解决了,试试Sample osgearth_tocosgearth中如何进行实时的纹理切换有两种地球的金字塔纹理,想在程序运行后通过输入控制不同的纹理进行显示。需要怎么做,请高手指点一下?是可以在切换是临时加载纹理数据,还是要全部加载后进行隐现操作?参看一下osgearth_toc的源码,那里有通过隐藏、显示不同层纹理的方法采用osgearth_toc方法后可以实现纹理切换的效果,只是效率下降了很多。从60帧降到5帧左右怎么在osgearth 显示的地图中 显示鼠标所在点的经纬度坐标你可以参看osgEarth自带例子:osgEarth_elevationosgEarth_Viewer中有求问:使用osgearth动态加载海量地形和纹理问题关于使用osgearth的addelevationlayer和addimagelayer方法来动态、实时加载大量地形及配套纹理数据时出现了问题。我写了一个线程,每隔10s左右检测一下指定目录,如果发现新的地形和纹理数据,就用以上方法加载进map,地形和纹理数据都是tif格式,具体线程中的代码如下:virtual void run()_done = false;_dirty = true;doYieldCurrentThread();addNewTerrainModel();OpenThreads:Thread:microSleep(10000000); while( !_done );void addNewTerrainModel( )OpenThreads:ScopedLock lock(_mutex);ostringstream ostrfile,ostrname;ostrnamefileformatindex;string strDEMFile, strImgFile;ostrfilestrDataDirfileformatindex.tif;BOOL bExist = PathFileExists(ostrfile.str().c_str();if(bExist)strDEMFile = ostrfile.str();elsereturn;ostrfile.str();ostrfilestrDataDirfileformatindexaddElevationLayer(new ElevationLayer(elevLayOpt);gdal.url() = strImgFile;ImageLayerOptions imgLayOpt(ostrname.str(), gdal);map-addImageLayer(new ImageLayer(imgLayOpt);index+;_dirty = true;但是这么做有一个缺点,就是随着数据逐步加入,程序内存占用相当厉害,最后程序就崩溃了。我考虑给map加个缓存以提高效率,因此,我在主线程中创建map钱加入了如下代码:TMSCacheOptions tmsopt;tmsopt.setPath(strCacheDir);MapOptions mapopt;mapopt.cache() = tmsopt;mapopt.cache()-cacheOnly() = false;map = new osgEarth:Map(mapopt);可是效果也不是太理想,而且,如果程序第二次运行,缓存目录中有上次缓存的文件夹,程序会直接崩溃。有哪位研究过osgearth的请帮忙分析一下原因,或给点提示。谢谢!楼主解决没有啊,我也碰到了类似的问题,加载效率太慢,但是写成.earth文件就很快,不知是为什么?解决的话分享下,谢谢楼主!加载原始影像高程最好先进行瓦片金字塔处理关于osgEarth 与 VPB我以前一直在使用vpb生成的地形模型,步骤大家都知道,就是准备好高程数据、纹理后,利用osgdem命令,进行一个很长时间的建模过程,最终生成一个ive或osga模型。但是现在已经逐渐开始使用osgEarth中的一系列比较完善的应用模块,比如浏览器、天空盒和跟踪节点等。所以在考虑最终是否抛弃vbp,利用osgEarth直接生成地形模型。由于未实际操作过所以有个问题,osgEarth本身是否像vpb一样可以离线的将准备好的高程数据、纹理生成一个地形模型,如果可以的话,和vpb比,从生成的速度、效果、效率上比有什么优势?谢谢!可以加载离线数据,但是osgEarth是动态构建四叉树,它的效率应该不如静态LOD。我记得阿威作过试验,超过几十GB就会有问题了,不过我个人没有作过针对性的研究我更感兴趣的是ClipMaps+四叉树的做法,效率高而且可以动态更新影像,也许我近期会设法实现它vpb生成的四叉树结构地形在osgearth使用时还会再次进行四叉树重构吗?还是直接用vpb生成的四叉树结构就行,就跟没用osgearh一样?因为osgearth是要从生成的地形文件重新拆解影像和高程的。一直很纠结这个问题。主要是担心用vpb生成的地形在osgearth中直接用还是效率下降。应该不会了QT osgearth earthmanipulator 问题求助earthmanipulator 在QT程序中鼠标滚轮缩放无效,左键双击也无效,不知是什么原因,trackballmanipulator多挺好这要看您的Qt程序中是否正确把这两个事件映射给OSG了问题找到了,osgearth2.0有这个问题,osgearth1.4就没有,对比后发现是osgearth2.0中boolEarthManipulator:handle(const osgGA:GUIEventAdapter& ea, osgGA:GUIActionAdapter& aa) if ( ea.getHandled() )/这两句的问题 return false;/这两句的问题注释掉就可以了,或者不注释掉但程序中不要使用类似如下事件处理addEventHandler(new osgViewer:RecordCameraPathHandler);否则会导致handle函数返回无法执行FRAME。EarthManipulator默认鼠标右键滚轮都是有响应的。osgEarth纹理使用问题我写的osgEarth的一个.earth文件如下: .data/world.tif ./data/dc_high_res1.tif ./data/dc_high_res2.tif ./data/dc_high_res3.tif ./data/dc_high_res4.tif 除了world.tif可以正常显示外,其他后面4个纹理只能够显示前三个纹理图片,不管我把哪些纹理放在前三,总是只是显示前三个纹理,请问这是怎么了呢?多谢。现在明白了。是要对layering_technique进行设置,否则osgEarth会根据硬件情况自己读入有限数目的纹理图片。例如采用 composite 或者 multipass 但是采用multipass发现osgEarth运行效率很低,cpu占用率太高了。而composite需要图形卡支持GL_TEXTURE_2D_ARRAY_EXT 纹理扩展,请问大家对于什么显卡支持GL_TEXTURE_2D_ARRAY_EXT 纹理扩展有了解么?如何知道自己的显卡是否支持GL_TEXTURE_2D_ARRAY_EXT ?多谢更新显卡驱动到OpenGL 2.0以上就可以支持texture array了可是我查了一下我的opengl版本是2.1.2,显卡为NVIDIA Quadro Fx1700/PCI/SSE2不知道为何不支持您说的texture arrayQ:同时导入多个模型,想鼠标点击其中的一个,使其高亮显示,并且可以单独控制该模型移动(如拖动或摆动等),怎么可以实现A:方法有很多,例如设置颜色数组,材质,或者用着色器等计算鼠标的偏移,相应事件中重绘模型,但是效率可能比较低单击射线求交,通过鼠标Drag消息计算平移,赋到上层transform结点,不就完了。使用osg中的自带的drag拖拽器就可以完成场景模型的拖动功能。Q:求教:一个模型的不同部件,如何显示鼠标所指位置模型不同部件的名称?有什么好的方法?A:直接求交,从交集的nodepath里找如果你的一个部件就是一个node的话,那么从交集的nodepath里就可以确定。交集的nodepath保存了从相交的drawable开始到root的父节点链所有部件属于同一模型,同一Node该怎么办呢?拆!我试过FLT文件可以通过交集测试获取模型的部件Q:请问如何在漫游中能像默认操作器那样用鼠标拖拽模型?A:拖曳的识别是通过GUIEventHandler中的DRAG事件来完成的解决QT中文字符串在osg中显示乱码的问题网上有很多例子,但是几乎都没有正常显示中文,经过痛苦的试验和折磨,终于解决了QT字符串在osg中的正常显示问题,下面贴出主要代码,分享给大家。QTextCodec:setCodecForTr(QTextCodec:codecForName(GBK);QTextCodec* code = QTextCodec:codecForName(UTF-8);QString qstr = QObject:tr(中国);string str = code-fromUnicode(qstr).data();osgText:Text* text = new osgText:Text;textOne-setFont(C:/WINDOWS/Fonts/STSONG.ttf);/设置中文字体text-setText(str, osgText:String:ENCODING_UTF8);Q:关于Google earth影像坐标准不准?/ESRI/viewthread.php?action=printable&tid=78315/u/20100412/13/d81d7f70-c82c-4e71-883c-77555aee5c74.htmlQ:模型的朝向elevationManager.getPlacementMatrix(geoPoint.x(),geoPoint.y(),10.0,0.0,NULL,n_matrix,elevationInMap,resolution);要设一个节点来专门调整模型的朝向一开始模型太小了VPB建立的地形分页数据库的更新和指定范围的问题各位前辈好!我想问的是利用OSGDEM或者vpbmaster根据影像和DEM建立的分页数据库支持更新吗,比如我一开始创建了基于一张DOM和一张DEM的地形分页数据库,后面又来了一张DOM和DEM,我想在先前的地形数据库的基础添加新来的地形数据库,请问用OSGDEM或者vpbmaster如何实现?另外一个问题:在场景中浏览3D地形时,如何实现读取某一块地形的操作,比如我用鼠标画一块矩形,我想在内存中加载这块矩形中的地形数据进行一些处理,或者由我自己给定一块地理范围,得到这个范围中的地形信息?请问针对这个2个问题OSG和VPB那部分的源码有相关的内容或者给个大概的思路?有劳了各位了。vpb是一个地形预处理软件,处理后是一些数据,实时地形方面,用osgEarth更适合一些好的,谢谢。我还是想继续问一下,VPB生成的数据库如何实现更新的问题,这个用OSGEARTH能实现?VPB的数据更新需要用vpbmaster带参数重做更新的区域,是预处理的方式,不能实时立即更新。osgEarth是动态四叉树所以可以实时立即更新嗯好的,这个我了解了,VPB地形数据库是静态的。谢谢你!有关gis项目的两个问题学习osg过程中,我有如下有关gis项目的两个问题。 1、一个GIS项目,打算选用osg来进行开发,目前观察学习osgearth和osggis。那么这个项目是以osgearth为主框架,还是以osggis为主框架。或者说,他们那个更加符合一般的三维gis应用的需求。 2、经过观察,osgearth是主要以*.earth工程文件导入到osg场景中。类似esri的*.mxd工程文件。那么osgearth能不能像,arcgis桌面版一样单独的对图层,及其图层要素进行相关的gis操作(增、删、改、查、显但是不需要编辑功能)。同时osggis却可以进行如上方便的操作,能将gis数据装配到osg场景图中。那么osgearth可不可以将osggis的功能结合起来使用呢,如果能得话,实现难度如何。“增、删、改、查、显”用earth就可以了,可以用vpb辅助生成地形数据,您可以把earth理解为osg的扩展,.earth文件是为了方便配置,读取后,您可以获取里面的图像层、高程层、矢量层,您也可以控制这些层的“增、删、改、查、显”VPB可以处理的数据格式已找到答案,输入osgdem -formats指令,所有支持的格式就列出来了。如何http网络读取osgdem生成的ive文件其他简单的模型都可以正常读取osg:ref_ptr loadedModel = osgDB:readNodeFile(http:/localhost:8085/osg/glider.osg);但是读取生成的地形ive的时候总是出错,出现堆异常osg:ref_ptr loadedModel = osgDB:readNodeFile(http:/localhost:8085/osg/test.ive);不知道是我osg编译的有问题还是osg本身不支持这种复杂一些的ive?只要编译了curl插件,网络读取就不会有问题,可能您的ive本身就存在问题?可以直接通过网络访问,看看该模型是否支持下载,下载后可测试模型文件是否可以正常加载,其次upvpbmaster的patch功能vpb从0.9.11版本开始加入了patch功能,可以实现在现有模型数据库的基础之上叠加影像和高程。这对于工程级的三维地景数据库的建立来说简直是一个福音。 本人在osg2.9.5和vpb0.9.11版本上亲自试验,patch功能相当完美。下面是试验过程:1、初步建立地球模型使用下面的命令行,注意要加入地形,否则生成的地球会不光滑,另外要制定生成模型所在目录,要不然会生成到当前目录,如果模型层次较多,将不利于管理。vpbmaster -whole-globe -t images -d elevation -geocentric -o earth_output/earth.ive生成的地球如下:2、进行增量叠加。我们在建立初步数据库的基础上,一般都会有叠加高清影像和高程的的需求,如果每次都重新生成模型,那太浪费时间了。-patch这个功能很好的解决了这个问题。下面这个命令只是测试使用,没有加入高程,只是叠加了一块影像。vpbmaster -patch earth_output/earth.ive -t jinan.tif叠加之后效果如图从上面的简单试验可以看出,vpb0.9.11的-patch功能工作正常,效果良好。注意事项:1、目前之后vpb0.9.11和高版本才有这个功能。2、-patch功能似乎只能在vpb0.9.11版本生成的数据下才能使用(因为这个版本调整了.task文件)最近想在原有的DEM上叠加一个高分辨率的影像,地形是通过VPB0.9.11版本的osgdem生成的,使用vpbmaster -patch的命令为:vpbmaster -patch dixing.ive -levels 4 6 -t image.tif运行后提示是找不到source file. 请问是不是在生成地形的时候还需要建立一个source文件啊?郁闷中使用patch功能,必须保留生成原始数据的source文件和tasks文件等。需要把想加入的文件和源文件放在同一个目录下吗source 文件和task文件在用osgdem生成地形时就能设置还是自动生成呢?我看生成后的文件,没有source文件呢。osgdem -t image -d dem -l 6 -o output.ive -so build.source 这样写对吗?我试了一下,这个命令后会生成source 文件,内容是包含了你使用的源文件列表、设置的分层数,但一会就结束了,根本没有生成地形!还请高人指教!谢谢vpbmaster 才能生成source 和task文件在使用vpbmaster生成地形时(按照官方网站上的指导),总是说需要进行重新投影,然后就停止了。查看其源代码时发现,只是有一个警告信息,然后就推出程序了,根本没有进行重新投影的操作!如何用osgdem生成有局部高精度地形的地球我使用教材上的如下命令osgdem -bluemarble-west -t land_shallow_topo_west.tif -bluemarble-east -t land_shallow_topo_east.tif -geocentric -l 12 -o earth.ive生成一个地球,但是现在想要加入一个局部高精度地形,使用什么命令呢?我用osgviewer看了/data/earth_bayarea/earth.ive上的地球,这上面是加入了California附近的一块有高程的高精度地形的,不知道这是用osgdem或vpbmaster的哪个命令实现的,希望有经验的过来人能够指点一二,多谢。d命令似乎可以直接加,不过,我还没试过,好久没有关注了问题已解决,是用参数-levels 后面跟要叠加的高精度纹理和高程数据,不过要设置地理坐标系。谢谢斑竹的回答。这个设置地理坐标系或者WGS84就可以,你在后面直接设置就可以,具体请参考VPB入门指南里面的一些参数设置吧,这些虽然比较老,但坐标系的参数设置一直都没有变比如我想在局部加一个高精度地形,可以在命令行中输入: osgdem -whole-globe -t earth.tif -geocentric -l 12 -levels -t a.tif -o earth.ive。这样的书写正确吗?那个地理坐标系的设置是不是放在“-o”前面呢。我看书上有关坐标系参数只有下面的我应该怎么书写呢?谢谢了这个放在前后没关系,它指定的是目标坐标系,如果数据不是目标坐标系,它则会重投影转换到目标坐标系下您的输入没有问题的我是要在地球上加上局部细节图片。现在有几个不清楚的地方:1图片该怎么用gis软件处理?几何校正什么的。 看了好多帖子说要得到geotiff格式,也不知道怎么得到这种格式。2。处理之后图片上会有经纬度信息吗?我不知道怎么把图片贴到对应经纬度的区域,因为用osgdem中的命令也没有指定图片的经纬度区域这个。osgdem运行中出现内存错误请教大家一个问题:我手头有一块地形的数据,影像数据一共有20个文件,*.tif格式,地理信息写在*.tfw格式的文件中,总大小一共有12G;高程数据格式是*.asc格式的文件,只有一个文件,带地理信息,总大小一共80M,这个影像数据的地理范围合起来和高程数据的地理范围相同。我在用osgdem处理的时候,事先将*.asc格式的文件转换成*.img格式,然后用命令osgdem -t 1.tif -t 2.tif -t 3.tif (.文件太多,中间省略) -t 20.tif -d dem.img -l 6 -o test.ive处理,当处理到中间过程时,报内存错误,请问是什么原因呢?我记得Robert曾说过osgdem的机制有些陈旧,很难处理大规模的地形和影像叠加(毕竟是vpb工程产生以前就有的东西了);解决方案是使用vpbmaster,建立任务工程并实现复杂的、甚至是并发式的数据加工。不过我个人对此并没有更深的研究了建议你把格式统一一下,最好带有相同的坐标信息我这个月内会提出一个海量地形渲染的解决方案,请留意关注!请问:如何使用osgdem对多个dem及其对应的卫片生成地形?为什么我在使用多个dem及其对应的卫片生成地形时,生成的地形文件只有第一块区域的,其他区域块的数据与第一块的数据好像被统一生成到该区域里了。若使用其他软件自动拼接成一块区域是没有任何问题的!但是这样对于大地形文件是不可能的。我们不可能把成百上千G的数据合并成一个文件吧!请问,我该如何同时生成多块区域组成的地形?请指教!谢谢!首先,你得确定你的多个dem的坐标是正确的,或者说,相对位置是正确的,不会出现西南角坐标皆是(0.000,0.000),你可以用其他软件打开看看,比如ArcGis把多个dem都加进去,看看是不是“所有区域块的数据被统一生成到第一个区域里了”。如果不是,则下一步。下一步,在osgdem命令里,原来不是“-t 纹理文件 -d dem文件”么?对吧?你想加多个dem一起来,可以,就写成“-t 纹理文件 -d dem文件一 -d dem文件二 -d dem文件三 ”你想加多个纹理一起来,也可以,就写成“-t 纹理文件一 -t 纹理文件二 -d dem文件”当然,可以举一反三一下,0个纹理、多纹理多dem等等等等都没问题。osgdem命令里, -t -d可以是目录我将数据用arcGis打开在选择适当的 投影坐标系后显示没有问题的!但是使用osgdem生成就得不到想要的结果。所有地形块都生成在一起!关于命令-geocentric这个命令所产生的地心坐标系是地心直角坐标系还是地心大地坐标系。按照OSG,X,Y,Z来说,我猜是地心直角坐标系。但是这个坐标系很不直观。高中学的三角函数都还给老师了,有没有人给我一个现成的坐标转换矩阵。谢谢大家另外,经纬度需要精确点,高程信息无所谓这里当然是地心大地坐标系经纬度转换x,y,z,你可以自己写一个简单的函数,也可以使用osg:EllipsoidModel来计算请教vpb在做地形的lod时的设置问题之前用vpb生成地形的lod数据时好像默认的RangeMode都是DISTANCE_FROM_EYE_POINT,这就有这样一个问题,如果我的Camera的视场角设置的很小(只有3,4度)的话,那么即使建筑物在屏幕上已经很大了,但由于这个Distance太远了,所以显示出来的还是低分辨率的地形,如果说为了每一种Camera参数都做一遍LOD那就太麻烦了。所以,osgdem在做lod时能不能设置RangeMode为PIXEL_SIZE_ON_SCREEN;或者说,用DISTANCE_FROM_EYE_POINT的话,可不可以在不修改lod数据的情况下,改变DISTANCE计算的策略,比如说有没有一个参数可以用来乘在模型与视点的距离之间,作为最后的渲染lod时作为载入依据的DISTANCE。还请各位高人指点!OSG在运行时可以方便地改变LOD的全局缩放比例,相信这足可以满足您的需求了:view-getCamera()-setLODScale( . );请问vpb怎么设置分层少但是影像是出来的高分辨率我有地形和影像,但是不想分太多层,这样文件太多但是我把级数设少了,映像分辨率却没有达到最高,请问该如何设置我使用的是osgdem手动将地形高程和影像分块也是可以的最简单的工具就是global mapper,envi、arcgis或者erdas都可以,呵呵,或者自己写个影像分割的程序增加-tile-image-size这个参数的值,你的lod层数就越少,但精度不变如何增加,默认为256难道要加一倍,512 吗!呵呵求教!关于LOD在VPB切地形的时候,那个LOD和PageLOD各是什么作用啊?版主指教啊LOD很好理解,通常是在一个文件内部,加载的时候一次性加载倒内存,在PagedLOD就是有多个子节点,每个子节点都是一个独立的文件,两者都是优化,一个是实时优化,一个是实时加载那在osgdem中怎么同时使用LOD和PageLOD?我看源代码好像2者只能取其一,默认是PageLOD。是这样吗?PagedLOD是LOD的子类两者是不能同时使用的,这是两种不同的DatabaseType ,默认的就是PageLOD如果地形文件很小的话,用效果可能会更好一点pagelod是继承自lod,因此选择默认选择pagelod实际上也用到了lod技术,要不然那么多层级的地形不可能同时显示osgdem生成的文件,能不能生成或者合并成一个整的文件?osgdem生成的文件,能不能生成或者合并成一个整的文件?因为文件太多了有10,000多个。好像osgde

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论