全新推出的三维WebGPU客户端,提供更高真实感的三维场景表现力和更强大的海量数据承载力,能够更好兼顾可视化效果和业务管理需求。SuperMap GIS 2023从底层同时支持WebGL和WebGPU两种渲染框架,对外使用一套API接口便于用户根据实际需求快速切换。
本文档将以基础示例为例,指导用户如何实现从WebGL到WebGPU的快速切换。
下面以加载地形影像为例,介绍从WebGL切换到WebGPU的操作流程。
(1)WebGPU的文件引入方式与WebGL相同。也是将获取版本解压缩后,在examples文件夹下新建HTML文件, 在文件中通过<script> 标签将SuperMap3D.js文件引入:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="../../Build/SuperMap3D/SuperMap3D.js"></script>
</head>
</html>
(2)同时应该根据需要在 <head> 标签中引入的其他css文件和js文件,如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<link href="../../Build/SuperMap3D/Widgets/widgets.css" rel="stylesheet">
<link href="./css/pretty.css" rel="stylesheet">
<script src="./js/jquery.min.js"></script>
<script src="./js/config.js"></script>
<script type="text/javascript" src="../../Build/SuperMap3D/SuperMap3D.js"></script>
</head>
</html>
(1)将开启WebGPU属性添加到Viewer接口的参数里,若不开启此属性,则默认以WebGL2.0方式加载。
(2)由于WebGPU采用异步加载,初始化场景操作需要放在回调中打开。
<script>
function onload(SuperMap3D) {
var viewer = new SuperMap3D.Viewer('Container',{
//创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务
terrainProvider : new SuperMap3D.SuperMapTerrainProvider({
url : URL_CONFIG.SiChuan_TERRAIN,
//地形服务源自SuperMap iServer发布时需设置isSct为true
isSct : true,
invisibility:true
}),
//使用WebGPU方式加载(若不开启此属性,则默认以WebGL2.0方式加载)
contextOptions: {
contextType : SuperMap3D.ContextType.WebGPU,
}
});
viewer.resolutionScale = window.devicePixelRatio;
viewer.scenePromise.then(function(scene){
//初始化场景(由于WebGPU采用异步加载,初始化场景需要放在回调中打开)
init(SuperMap3D, scene, viewer);
});
}
function init(SuperMap3D, scene, viewer){
//添加SuperMap iServer发布的影像服务
var layer = viewer.imageryLayers.addImageryProvider(new SuperMap3D.SuperMapImageryProvider({
url : URL_CONFIG.SiChuan_IMG
}));
//设置相机位置,定位至地形
viewer.scene.camera.setView({
destination : new SuperMap3D.Cartesian3(-1206939.1925299785, 5337998.241228442, 3286279.2424502545),
orientation : {
heading : 1.4059101895600987,
pitch : -0.20917672793046682,
roll : 2.708944180085382e-13
}
});
}
</script>
</body>
</html>
以上为加载地形影像示例从WebGL到WebGPU的快速切换的方式,产品包中还提供了一些使用WebGPU方式加载的示例供用户参考。
(1)终端设备与浏览器兼容性
IE | Chrome | Firefox | Opera | Safari | Edge |
/ | 推荐113.0以上版本 | 暂未直接支持 | 推荐最新版本 | 暂未直接支持 | 推荐最新版本 |
(2)WebGPU暂不支持移动设备