1. 问答社区常见三维问题整理

作者:吆鸡
校对:haixin
关键字:精模、倾斜摄影模型、三维管线、SuperMap问答社区 、iDesktop

  • 1. 问答社区常见三维问题整理

    • 1.1. 前言
    • 1.2. 桌面三维
      • 1.2.1. 精模导入问题
      • 1.2.2. 倾斜摄影模型问题
      • 1.2.3. 管线问题
      • 1.2.4. 桌面其他问题
    • 1.3. 组件三维
    • 1.4. 客户端三维
      • 1.4.1. 插件客户端
      • 1.4.2. WebGL客户端
    • 1.5. 后记

1.1. 前言

SuperMap问答社区上线,面向大众、服务大众,无论您问的问题是多么浅显易懂,我们都会热情洋溢回复您;又或者您问的问题是多么的高深难解,我们仍会尽一切能力资源去找出问题的原因,给您最终的解决方案。几个月以来,不仅积累了一定的用户量,而且积累了不少有代表性的问题。尤其是三维问题,截止发贴,已经249个问题了。

三维 iDesktop JavaScript iServer iClent iObject
249 134 133 117 106 65

在此分产品总结一下GISer们常问的三维问题,希望能帮助到需要帮助的人。

1.2. 桌面三维

1.2.1. 精模导入问题

  1. 超图3dsMax插件导入模型出错(3dsMax崩溃等),提示“发生了错误,应用程序将立即关闭。……”如下图:
  • 升级新一点的超图3dsMax插件版本导导试试。
  • 可能是数据有超图插件不支持的类别,比如实体(辅助线等)。在3dsMax中按快捷键“CTRL+A”选中所有东西,左下角提示“选则了XX个对象”,能正常导出;如果左下角提示的是“选择了XX个实体”,实体是导不出去的,就可能导致崩溃。
  • 可能是您数据太大,导出时内存不够用,导致程序崩溃。这时需要把max文件分为多个文件再导。
  1. 3dsMax模型数据导入到数据集添加到场景发现模型呈白色(颜色丢失)或者贴图丢失。
  • 3dsMax中模型颜色可以设置对象颜色,也可以通过材质球,设置漫反射颜色,然后把这个材质赋给对象,对比如下图:


    目前已知的是“对象颜色”导到超图桌面会丢失。因此如果模型对象不需要贴图,只想着色,请通过材质球的漫反射颜色设置,再导便正常了。
  • 贴图丢失可能的原因较多,如:
    (1)贴图文件放在了多个文件夹,而超图3dsMax插件导出数据时纹理路径只能指定一个文件夹。
    (2)贴图文件目录指定错了,或者贴图文件本身丢失。
    解决以上2个问题的终极办法是把贴图文件放在您的3dsMax模型文件(*.max)同一个目录。
    (3)贴图文件使用了不支持的格式。
    目前支持的贴图文件格式有:bmp、jpg、tif、png、tga、gif,其他格式是不支持的,需要转换成支持的格式才行。建议贴图纹理长、宽均为2的n次幂像素值;建筑物纹理尺寸控制在1024×1024以内,地形纹理尺寸控制在512×512以内。除此之外,确保您的贴图文件颜色模式是RGB模式和8位通道的图片,具体可以在photoshop中查看:

    (4)使用了不支持的材质球。
    目前SuperMap平台中支持的max材质只有标准(Standard)和多维子材质(Multi/Sub-Object)(可以包含多个标准材质),其他材质导出均不能正常显示。
    (5)贴图文件名称有“括号” 、“空格”等不字符。
    目前已知这些符号有时也会导致贴图丢失,建议取名不要用括号和空格,下划线是可以的。
  1. 3dsMax模型数据导入到数据集添加到场景发现模型与模型之间相对位置有偏差。如下两幅图所示:

  • 原因可能是模型建模的时候参考了某个坐标系,如图:


    但在超图3dsMax插件中导出时是“场景投影信息”选择的是插入点信息,如图:

    如此导出的结果会发现摄像头偏差栏杆一些距离。原因可解释为数据导出过程中从投影坐标系变换到经纬度坐标系这个投影变换过程产生了误差,而且较大。解决办法是通过自定义投影告诉插件即将要转的数据是基于什么投影坐标系建模而来的(前提是您知道这个数据是基于某个坐标系建的,比如测试数据,图中有摄像头那个数据,是WGS84椭球的高斯3度带某带的投影,下图中xml格式的投影文件可以在iDesktop中导出),可以按下图所示方式设置使得结果正确:

    结果图片:
  • 如果确实是不知道原始数据是什么坐标系的,可以在3dsMax中选中所有对象,将它们整体平移到原点附近,然后插入点信息设置经纬度导出,也能避免这种问题。
  1. 3dsMax模型数据导入到数据集添加到场景发现缩放到图层时看不见模型或者模型很小,如图:
  • 原因可能是离这个数据很远的地方还有数据。最可能导致这个问题的操作是本来画了一点点模型,但是发现画的坐标没对,删了,又到正确坐标画模型去了。问题就出在删的那一步,比如没删干净,留了一个很小的对象,在导到超图平台的时候一起导过去了,导致数据集范围过大,只能定位到很小,甚至有定位不出来但是属性表能看见的情况。解决办法是在3dsMax中排除那些对象,重新导。如果从属性表能判断出来哪些是不要的,可直接在iDesktop属性表中删除,删除后对数据集进行重新计算范围操作。
  1. 3dsMax模型数据导入到数据集添加到场景设置图层风格为贴地却没有贴地,如图:
  • 这是因为在3dsMax模型对象本身就有高度信息,导到超图平台时,设置绝对高度为0或者贴地时其实是大概是3dsMax看见中那个高度,如测试数据要贴地需要把高度设置为-100以上。在3dsMax中建模的时候把z值调为0附近就能避免这个情况。
  1. sketchup等其他格式模型怎么导入超图平台?
  • 这类模型不一定能直接导入超图平台,一般思路是先转为通用交换格式(如*.FBX格式),然后用3dsMax打开,如贴图丢失,需要重新在3dsMax中重新贴图,最后超图3dsMax插件导入到超图平台。
精模问题可参考的资料:
  • 超图平台模型制作规范。
  • 超图平台常见的三维模型问题整理和解决办法。
  • 超图平台中三维模型烘焙的处理。
  • 超图平台中精模匹配地形处理思路。
  • 超图公开课精品系列之《三维建模介绍及实战》第二讲 精模篇。
  • 超图平台3dsMax插件下载地址。
  • 超图平台3dsMax2014插件下载地址。
超图3dsMax2014插件手动安装方法:(1)下载解压,将"您的路径\Bin_x64_max_53805"添加到环境变量path中。(需要放在第一个位置)(2)拷贝文件"您的路径\Bin_x64_max_53805\SuMax2014Plugin.gup"到3dsMax2014安装目录如“D:\Program Files\Autodesk\3ds Max 2014\stdplugs”中。

1.2.2. 倾斜摄影模型问题

  1. 生成配置文件成功加载到场景看不见模型。
  • 双击图层能定位,但是看不见,数据可能在地下开启地下场景即可。操作步骤:“场景”菜单→“地下”组中“开启/关闭”下拉框选为开启,然后设置“透明度”为100%。
  • 开启场景地下模式也看不见数据,可能航拍数据转OSGB格式出了问题,常见的问题是坐标系选得不对。一般不能直接选择4326(WGS84)经纬度的坐标系,要选ENU的经纬度坐标系或者是基于WGS84的投影坐标系(如高斯投影、UTM投影)。
  1. 生成配置文件成功加到场景发现明显异常,如下图:
  • 类似上图中模型呈现遍布全球的碎片、或者遍布局部(但变形很严重)一般都是生成配置文件时指定了和数据导出时不一致的坐标系。解决办法,指定正确的坐标系,正确的坐标系一般在数据处理软件的工程输出目录会有个名叫“metadata.xml”的文件里面记录了正确的坐标系信息。
  1. 成配置文件成功加到场景发现模型颜色不正常,如变黑白、失真等。
  • 生成scp配置文件之后,再进行一次“纹理压缩”操作即可。步骤“倾斜摄影”菜单→“PC端”组→“压缩纹理”,选择scp配置文件,并指定目标路径(不要与scp文件同一个目录)。
  1. 进行“模型单体化”(特指“ID单体化”,“倾斜摄影”菜单中“WebGL客户端”组中的“模型单体化”功能)后的倾斜摄影模型没有选中效果。
  • 可能是您的数据坐标系是投影坐标系。目前“模型单体化”(ID单体化)只支持地理(经纬度)坐标系的数据,投影坐标系的数据还不支持。
倾斜摄影模型问题可参考的资料:
  • 菜鸟都应该知道的倾斜摄影测量知识。
  • SuperMap iDesktop 8C 技术文档 ——倾斜摄影模型提取矢量面。
  • SuperMap iDesktop 8C 技术文档 ——倾斜摄影模型生成DSM、DOM操作流程。
  • 超图公开课精品系列之《三维建模介绍及实战》第三讲 倾斜摄影篇。
  • 超图公开课之《倾斜摄影时代三维GIS软件技术新进展》。

1.2.3. 管线问题

  1. 请问带有流向的管线动画是如何制作的?
  • “工作空间管理器”中,展开“资源”节点,打开线“型符号库”对话框,“编辑”菜单,选择“新建三维线型”。在三维线型符号编辑器中,画一个圆形截面,然后在属性设置,设置GIF贴图即可。注意,流向的方向是矢量化的方向,即按照绘制顺序,按照第一个点开始到最后一个点。
管线问题可参考的资料:
  • SuperMap平台三维管线技术文档。
  • SuperMap平台自适应管线场景符号配置操作流程。
  • SuperMap平台三维管线常见问题。

1.2.4. 桌面其他问题

  1. 桌面新建场景立即闪退(崩溃)。
  • 原因可能是您的电脑只有很普通的集成显卡,解决办法:更换独立显卡。或者有独立显卡,但驱动程序太老,解决办法:升级显卡驱动。
  1. 场景中对象渲染、或者三维分析结果渲染明显不正确。
  • 检查显卡驱动是否是最新,或者您有双显卡,而没把独立显卡设置为主要显卡。
  1. 场景性能优化。
  • 条件允许的情况下,尽量升级显卡,显卡(GPU运算)对三维渲染至关重要。
  • 对场景生成缓存,建议生成OSGB格式的缓存。
  • 对场景进行“性能诊断”,根据诊断结果有针对性的进行优化操作。其结果信息包括:重要、普通和建议。其中,重要提示对场景性能影响较大,其次是普通提示,建议提示则对场景性能影响较小。
  • 显卡等硬件已经极好的情况下,场景仍然不流畅,一般是模型建得过于精细,目前硬件条件渲染还比较吃力。可打开“场景属性”,“其他属性”中勾上“帧率信息”,显示场景的“帧率”、“三角面数量”信息,观察帧率是否过低(一般30以上较流畅),三角面数量是否过高(一般情况数据不太大,但其值高于几千万属建模太精细)。如证实为建模太精细,可考虑从建模层面优化模型(模型简化),如减少顶点数,模型面数,控制贴图纹理大小等。
  • 倾斜摄影模型数据优化可以考虑对scp文件进行“合并根节点”、“压缩纹理操作”。在桌面的“倾斜摄影”菜单中能够找到这两个功能。
  1. iDesktop 8C生成场景缓存里没有OSGB缓存选项是什么情况?
  • 原因可能是直接对数据集右键进行生成“生成场景缓存”操作(对数据集生成场景缓存),这样在选格式的时候是不能选OSGB格式缓存的。解决办法:把数据集添加到场景,保存场景取名“场景A”,然后在“工作空间管理器”中的“场景”节点下找到“场景A”,对它右键再选“生成场景缓存”(对整个场景生成缓存),在弹出对话框中即可对想生成的矢量面设置为OSGB格式的缓存。

1.3. 组件三维

  1. 组件生成场景缓存怎么设置缓存类型为OSGB格式?
  • 生成缓存前,获取到场景的图层,设置Layer3DDataset.IsBuildOSGBCache属性。

示例:

foreach(layer3D in sceneControl.Scene.Layers)
{if (layer3D is Layer3DDataset){Layer3DDataset layer3DDataset = layer3D as Layer3DDataset;layer3DDataset.IsBuildOSGBCache = true;}
}
  1. 超图平台支不支持WPF进行三维应用开发?
  • 支持。只是并没有从WPF层面实现控件,引用的类库和winform开发引用的类库一样,通过WindowsFormsHost来绑定控件的。

在xaml的Window标签添加

xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
<Grid><wfi:WindowsFormsHost x:Name="hostSceneControl" DataContext="{Binding}" HorizontalAlignment="Stretch"></wfi:WindowsFormsHost>
</Grid>

>构造函数中添加 ```csharp ... m_sceneControl = new SceneControl(); hostSceneControl.Child = m_sceneControl; ... ```

  1. 场景中画一个圆,把圆内的模型高亮显示思路。
  • 这可总结为一个周边查询的实际案例,会用到空间分析思路。由于目前精模数据(从3dsMax软件等导入的模型数据)无法直接参与空间查询,所以目前一个较好的实现思路是提取模型的底面(矢量面,保存好对应关系),用画的圆和矢量面进行空间分析(包含或者相交算子),得到结果后,用对应关系找到需要高亮的模型,进行高亮显示即可。提取模型底面示范代码传送门。(跳转后在超图代码中寻找。)

1.4. 客户端三维

1.4.1. 插件客户端

  1. 插件客户端支持的浏览器。
  • 插件客户端支持IE内核的浏览器(IE11需要设置兼容性代码为IE8或者IE10)和支持开启“NPAPI”设置的浏览器,如谷歌45版本以下的浏览器。
  1. 安装了插件,浏览器仍然提示找不到插件。
  • 确保浏览器没有屏蔽“SuperMapRealspace”插件,IE浏览器打开一个插件客户端范例页面,“工具”菜单→“管理加载项”查看“SuperMapRealspace”插件的状态是否已启用。
  • 卸了重新安装一遍。不行的话请手动注册插件:(1)在附件中以管理员权限运行命令提示符;(2)输入注册命令regsvr32,然后空格;(3)将“C:\SuperMap\SuperMap iClient\SuperMap iClient3D for Plugin\npSuperMapRealspace.dll”或“C:\SuperMap\SuperMap iClient\SuperMap iClient3D for Plugin (x64)\npSuperMapRealspace.dll”(64位)拖拽到CMD中,然后回车。
  1. 插件客户端初始化三维球浏览器报“Invalid Arguments”错误。
  • 在html页面<head>标签添加兼容性代码:
<meta http-equiv="x-ua-compatible" content="IE=8">
  1. 插件客户端连续按F5刷新导致浏览器崩溃.
  • 连续按F5刷新会导致浏览器占用的显存越来越大,最终承载不过来导致浏览器崩溃。建议调试程序的时候关闭浏览器之后重新打开浏览器调试。
  1. 插件客户端HTML元素怎么叠加到三维球上?
  • 由于ActiveX控件机制,HTML的div等元素是会被ActiveX压盖的,微软目前都没有完美的解决办法。较好的办法是把元素加到iframe标签,再把iframe叠加到三维球上,这样不会被压盖,但iframe确实也没办法设置为透明的。
  1. 插件客户端怎么更改模型对象颜色?
  • OSGB缓存格式的图层可以在插件客户端设置颜色,注意设置某个对象的颜色前最好是先移除这个对象的选择集颜色。
var layer3Ds = sceneControl.get_scene.get_layer3Ds();
var layer3D = layer3Ds.get_item(0); // 假设OSGB图层是第一个图层
var selection3Ds = sceneControl.get_scene.findSelection3Ds(false);
var length = selection3Ds.length;if (lengthtt>0) {var selectID = [Number(selection3Ds[0].get_item(0))];var changeColor = new SuperMap.Web.Core.Color(255,0,0,255);layer3D.get_selection3D().removeAll();layer3D.setObjectsColor(selectID, changeColor);
}
  1. 插件客户端怎么实现管线的净距分析。
  • 目前插件客户端没有开放相关API,不过有范例可参考。净距分析示范传送门。(跳转后在超图代码中寻找。)
插件客户端可参考的资料:
  • SuperMap技术资源中心iClent产品技术资源、培训资源。
  • SuperMap iClent3D 8C for Plugin在线范例。

1.4.2. WebGL客户端

  1. WebGL客户端支持的浏览器有哪些?
  • 只要支持WebGL的浏览器都支持WebGL客户端,包括IE(10以上版本)、Chrome、Firefox、Opera、Safari等。移动端iPhone5及其以上系列、iPad Air及其以上系列、三星 Galaxy S6及以上系列、小米3及以上系列、华为荣耀6Plus及以上系列。未列出的设备(浏览器)请在这个页面测试是否支持WebGL:SuperMap Earth。如果跳转页面能看到三维球说明支持,反之不支持或者需要更新显卡驱动。
  1. WebGL客户端打开三维服务场景使用失败。

  • WebGL页面需要把整个包放在发布的目录(如Tomcat的Webapp中)在浏览器输入页面地址访问,而不能直接用浏览器打开html文件。
  1. WebGL客户端设置对象颜色、透明化对象。
  • 用到的API是S3MTilesLayer.setObjsColor(ids, color)。其中Cesium.Color第4个参数代表透明度(0~1)。
// Name    Type    Description
// ids  Array   要设置颜色的对象ID列表。
// color    Color   要设置的颜色。
var color = new Cesium.Color(1.0, 0.0, 0.0, 1.0);
var ids = [12, 22, 65, 98];
S3MTilesLayer.setObjectsColor(ids, color);
WebGL客户端可参考的资料:
  • SuperMap平台WebGL客户端在线专题。
  • 三维WebGIS应用开发(一)非插件式三维客户端开发包简介

1.5. 后记

欢迎访问超图问答社区检索问题、提出问题,如问题着急请直接拨打超图支持热线010-59896655.

问答社区常见三维问题整理相关推荐

  1. 2012CSDN网站八大职位急聘:PHP开发工程师、Ruby开发工程师、UI设计师、网络工程师、问答社区编辑、问答社区运营专员、移动频道编辑、软件研发频道编辑

    CSDN创立于1999年,是中国最大的中文IT知识服务集团,专注IT信息传播.技术交流.教育培训和专业技术人才服务.拥有超过1800万注册会员.10000名CTO.50万注册企业及合作伙伴,全球中文网 ...

  2. R语言中文社区2018年终文章整理(作者篇)

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

  3. 前端常见图片格式整理

    前端常见图片格式整理 PNG (Portable Network Graphics,便携式网络图形,1996) PNG有8位.24位.32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和a ...

  4. springboot基于web的在线问答社区系统设计与实现毕业设计源码061628

    Springboot在线问答社区系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以 ...

  5. (附源码)springboot+mysql+基于web的在线问答社区系统设计与实现 毕业设计061628

    Springboot在线问答社区系统 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻 ...

  6. (附源码)springbootBBS问答社区系统的设计与实现 毕业设计121007

    基于springboot的BBS问答社区系统 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于BBS问答社区系统当然也不能排除在外,随着网络技术的不 ...

  7. 做个问答社区要多久?这个开源项目直接拿去用!

    看到上面这张图片,小伙伴觉得TJ君最近在研究什么?是准备研读黄帝内经搞搞中医?还是准备看看周易八卦开始转行算命? 其实都不是,很多时候我们要透过现象看本质,其实这个类似易经研究网站的背后是一个类似知乎 ...

  8. ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区 1 ArcCatalog使用 1.1 GIS数据 地理信息系统, ...

  9. 做知乎大神不如做个知乎,问答社区建站工具——WeCenter

    ​   "--是一种什么样的体验?"."如何看待/怎样评价--?"爱逛知乎的朋友对这些话题格式肯定不陌生,现在知乎大火,越来越多的人开始在网络上分享知识.经验, ...

  10. (附源码)Springboot在线问答社区系统 毕业设计061628

    Springboot在线问答社区系统 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻 ...

最新文章

  1. 代码生成codegen
  2. 让数据分析更便捷快速,了解这12种Numpy和Pandas函数
  3. [转] 关于Jmail
  4. django-url的分发, 2)起别名, 3)根目录,4)rediect跳转函数:
  5. 阿里云云效发布研发协同工具,以新的产研协同工作方式助力实现BizDevOps
  6. 安卓应用安全指南 5.1 创建密码输入界面
  7. 使用Rufus制作LINUX启动安装U盘(成功)
  8. armbian 斐讯n1_[流水账记录] 斐讯N1刷armbian到emmc并安装Docker!
  9. Python基础:pip的安装与卸载
  10. 路由器修改dns服务器,路由器DNS怎么设置如何修改路由器DNS服务器地址
  11. Nodejs安装在D盘酱紫报错?
  12. 一阶电路实验报告心得_一阶rc电路的暂态响应实验报告分析
  13. 聚焦时代起点 智启云上未来——IMPACT2018紫光云峰会在津举办
  14. halcon中如何生成椭圆_Halcon中关于角度计算和测量拟合的算子详解
  15. this is related to npm not being able to find a file
  16. 荣耀6plus android6.0,旧瓶装新酒,大妈助我把级升 — 荣耀6Plus升级安卓6.0体验分享...
  17. 洛谷P3237 [HNOI2014]米特运输 题解
  18. Microsoft Office 2013 各国语言包下载
  19. (三)视觉处理算法基础
  20. 前端每日实战:125# 视频演示如何用纯 CSS 创作一个失落的人独自行走的动画...

热门文章

  1. 小程序源码:团长头像制作小程序
  2. 将英汉词典数据库放入MySQL数据库中,并将数据库中“以A开头的单词”显示在JSP网页上
  3. android 文件管理 ca,安卓Android手机添加根证书
  4. android 视频通话窗口切换,仿微信视频通话大小视图切换(SurfaceView实现)
  5. 分库分表之MyCat应用
  6. POJ 1436 Horizontally Visible Segments(线段树区间修改)
  7. ETR获取转速及PID调节原则
  8. 临时执法卡点的设置原理与选址分析
  9. 目标检测之YOLOv5算法分析
  10. 抖音上好看的小姐姐,Python给你都下载了