简介
Cesium 从1.102.0 开始,Cesium 默认使用 WebGL2 上下文。一些webgl特效代码在webgl1中支持,但是在版本升级后,运行会报各种glsl代码错误。现在有两种解决方案。详细办法描述如下所示。
1、修改配置使用WebGL1
地球初始化配置如下:requestWebgl1: true
var viewer = new Cesium.Viewer("cesiumContainer", { geocoder: false, // 是否显示geocoder小器件,右上角查询按钮 homeButton: false, // 是否显示Home按钮 infoBox: false, // 点击要素之后显示的信息,默认true selectionIndicator: false, // 是否显示 entity 选中标识 sceneModePicker: false, // 是否显示3D/2D选择器 navigationHelpButton: false, // 是否显示右上角的帮助按钮 animation: false, // 是否创建动画小器件,左下角仪表 timeline: false, // 是否显示时间轴 vrButton: false, // 是否显示虚拟按钮 fullscreenButton: true, // 是否显示全屏按钮 contextOptions: { // cesium状态下允许canvas转图片convertToImage webgl: { alpha: true, depth: false, stencil: true, antialias: true, premultipliedAlpha: true, preserveDrawingBuffer: true,//通过canvas.toDataURL()实现截图需要将该项设置为true failIfMajorPerformanceCaveat: false, }, allowTextureFilterAnisotropic: true, requestWebgl1: true, //设置使用Webgl1 } });
2、修改glsl代码使用webgl2
需要修改的关键字为: varying attribute texture2D gl_FragColor
其中 texture2D 修改为 texture
gl_FragColor 修改为 out_FragColor
而 varying attribute 修改为 out in 需要看glsl代码上下文。例如下文中varying声明参数v_st使用时在=右边,意味着需要参数输入,所以修改为in。
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接