文章目录
一、精模数据简介
精模是面面俱到,所有的四面结构、造型、门窗、物体都要按比列构建的模型,是三维城市构建器的基底图层,支持独立的样式和数据配置,包括精模的阴影设置和精模的动效效果等。
二、精模数据格式
对于精模数据的生成目前市面上主要使用到的软件就是Discreet公司开发的(后被Autodesk公司合并)3ds MAX。
3ds MAX本身支持输出多种格式的数据类型,包括:.MAX.FBX\3DS.PRJ.ABC.AI.ASS.DAE.DWF.DWG.DXF.FLT.HTR.IGS.OBJ.PXPROJ.PRT.NEU.G.ASM.SAT.STL.SVF.USD.USDA.USDC.WRL
其中FBX、3DS、DAE、DXF、OBJ等格式,SuperMap iDesktop产品可支持直接导入,此外3ds MAX中的模型还可以使用超图3ds MAX导出插件导出为模型数据集,推荐使用3ds MAX导出插件进行导出。
三、精模数据处理
1、精模数据如何处理成缓存
模型数据集生成缓存有两种方式:
- 将模型数据集添加到场景生成缓存
- 选中模型数据集,然后右键找到【生成缓存】功能进行生成缓存
这里一般推荐使用后者:
设置缓存参数
【纹理压缩格式】:设置“缓存用途”参数,主要包括普通PC设备和iOS系列设备、Android系列设备和不压缩,对于不同用途的缓存,应用程序将采用不同的纹理压缩方式,以减少纹理图像所使用的显存数量。
若需要将模型添加到平面场景中,可以将“场景类型”改为“平面”。
设置“LOD层数”以及每层数据的简化率,当三维场景拉近看的时候,模型呈现最精细的一层,当浏览整个场景的时候,模型只需要以较粗糙的方式显示即可,这样最大程度的优化资源的占用,提高整个三维场景的性能。
2、SuperMap iServer发布服务
使用SuperMap iServer将缓存数据发布为三维服务:
方式一:
在SuperMap iDesktop中将缓存添加到场景中保存场景再保存工作空间,iServer选择“快速发布一个或一组服务-工作空间-三维服务”即可。
方式二:
iServer选择“快速发布一个或一组服务-三维切片缓存-REST-三维服务”。
3、SuperMap iClient3D for Cesium加载服务
使用SuperMap iClient3D for WebGL加载发布的三维服务:
方式一:
viewer.scene.open('http://localhost:8090/iserver/services/3D-local3DCache-BuildingCBD/rest/realspace')
方式二:
viewer.scene.addS3MTilesLayerByScp('http://localhost:8090/iserver/services/3D-local3DCache-BuildingCBD/rest/realspace/datas/Building@CBD/config',{
name:'build'
})
四、可能遇到的问题及报错
问题一、反走样摩尔纹
反走样摩尔纹也叫抗锯齿,既是骨架边缘形成的锯齿现象。尤其很密集的线条状结构更 为明显,视角到达一定距离就形成了摩尔纹闪烁现象。线条状对象的颜色与背景色差越大锯 齿就越明显,如下图
左侧图片是 WebGL 解决反走样之前的现象,右侧图片是WebGL解决反走样之后的效果。
解决方法 1:
WebGL 新版本对反走样做了优化处理,基本消除了明显的锯齿和短线现象, 还存在相对微弱的锯齿状态。
解决方法 2:
设置框架线条图层可见距离,远处隐藏。由于框架线条对象比较细小,远处看 起来不明显,隐藏后对效果影响不大,既解决了反走样摩尔纹又提升了性能。
问题二、纹理摩尔纹
纹理摩尔纹是由贴图形成的摩尔纹闪烁,跟模型骨架没有关系。纹理摩尔纹对效果的影 响比较大,非常影响体验效果。
解决方法:
WebGL 新版本解决了纹理摩尔纹现象。
问题三、近距离重叠面闪烁
建筑和地面有很多地方闪烁,下图由于是静止画面不太明显,如在浏览操作过程中闪烁 相当严重。
问题分析:
闪烁是由于两层面片距离很近,属于数据非常不规范所导致。
解决方法:
在桌面【场景属性】面板中开启【深度优化】后有非常明显改善(如下图),基本能 解决 90%以上由双重面导致的闪烁。目前 WebGL 默认已开启。
问题四、透明空洞
部分透明面片背后无内容,直接看到背后的物体或地球表面。如下图黄框中的玻璃幕墙 和天桥上的玻璃。
问题分析:
图中现象是 OIT(顺序无关透明)导致的。
解决方法:
在桌面端勾选【场景属性】中的【透明优化】,缓存生成 s3mb 格式,能解决大多数的透明排序问题。
问题五、建筑内侧无内容
图中的左边建筑我们可透过窗户看到里面没有内容,直接看到了大楼背后的错误景象; 右边建筑为解决后的正常状态,如下图:
问题分析:
多数情况是内外分成了两个图层,外侧图层排在了内侧图层的下方所导致 。
解决方法:
调整图层顺序,把外侧带有半透纹理的图层调整到上层。
问题六、格状物体破碎
格子状的玻璃棚破碎,视角只要离开稍远距离就出现破碎现象。
问题分析:
这种现象一般是 LOD 层压缩导致的,目前 LOD 层的压缩机制还不太完善。
解决方法:
把有问题的模型单独提取出来生成缓存,将其 LOD 的网格简化率调小。图中 LOD 设置为:0、0、20。