今天更新了cesium版本,发现自定义材质报'texture2D' : no matching overloaded function found
查了一下cesium日志,发现原因是从1.102版本开始默认使用的是WebGL2上下文渲染。WebGL2 在所有平台上都得到广泛支持,这导致跨设备(尤其是移动设备)更好的功能支持。
解决办法:
1、可以把cesium退回到WebGL1
const viewer = new Viewer("cesiumContainer", {
contextOptions: {
requestWebgl1: true,
},
});
2、 WebGL2 上下文中工作,任何自定义材质、自定义基元或自定义着色器都需要升级以使用 GLSL 300
将原来的texture2D,改为texture