首页 / 浏览问题 / 三维GIS / 问题详情
WebGL 加载BIM模型丢失
58EXP 2019年06月19日

WebGL 在加载BIM的S3M缓存模型时,某个位置上的模型一直无法加载出来,请问这是什么原因呢?在iDesktop上显示是没问题的。

iDesktop:

webgl 

1个回答

您好,您第一张图中红框部分和左边的相同类型的模型是同一图层吗?图中箭头所指部分如果是同一个图层,您单独加载这个图层有问题吗?
如果不是一个图层,那么这个图层就没有被加载进来。您看一下在idesktop中加载这个缓存有没有问题,因为您图中我看不出来加载的是模型还是缓存

6,215EXP 2019年06月19日
 window.onload = function (event) {
            var HzsDyrmyyRegionPoints = []
            var viewer = new Cesium.Viewer('app')
            var s3mServerUrl = 'http://172.100.100.200:8092/iserver/services/3D-test1/rest/realspace'
            //获取3维服务的异步请求对象promise
            let scene = viewer.scene;
                      
			scene.globe.undergroundMode = true;
			scene.globe.globeAlpha = 0.5;
		    scene.open(s3mServerUrl);  //打开iserver场景服务下所有图层
			var positions = [];
		  for (let point of HzsDyrmyyRegionPoints) {
			positions.push(point.x);
			positions.push(point.y);
			positions.push(point.z);
		  }

		  scene.globe.addExcavationRegion({
			name: "hzsdyrmyy",
			position: positions,
			height: 10000,
			transparent: false
		  });      

        }

以上是我的代码。

我用了你的代码,好像没有达到你截图出来的效果啊

浏览器也是:chrome版本 74.0.3729.169(正式版本) (64 位)

显卡也是GTX1060 6G。但是那个模型还是不出来

当我从Revit导出模型的设置中的高度值,设置为3.2及以上值的时候,该模型是可以出现的。但是低于3.1的话该模型就出不来了。

WebGL怎么设置S3MTiledLayer的图层高度呢?

您可以看下我们官网的API
地址:http://support.supermap.com.cn:8090/webgl/Build/Documentation/S3MTilesLayer.html?classFilter=s3m

这里面有个position属性可以设置高度

后面通过style3D完成设置了。

let style3D = new Cesium.Style3D();
 //设置底部高程。
style3D.bottomAltitude = 3.1499;
layer.style3D = style3D;
//设置后需刷新图层
layer.refresh();

但是要通过增加高度来显示模型,感觉不是很合理额。有没有其他什么解决方法呢

我再排查排查有消息给您反馈
...