mapbox加载高程图结果谷歌浏览器提示无法初始化WebGl???
用了这个步骤操作成功的
网址:https://zhuanlan.zhihu.com/p/24794967
全文防删备用:
因工作需要碰到了高版本 chrome 不支持 WebGL 的情况,于是整理了一下解决方法,如有疏漏请指出。
Chrome 是对 WebGL 支持度最好的浏览器,从版本号18开始就对 WebGL 1.0 有了非常全面的支持(现在最新的版本为55+)。但在不同用户的电脑上,就算版本号>18的chrome也能碰到各种各样的奇怪问题而无法打开 WebGL 应用,这时候可以怎么做呢?
本文基本是对 How can I enable WebGL in my browser? 这个回答的提取,并加以补充。
0. 检查浏览器 WebGL 支持度
甩一个 WebGL 支持检查的网站 WebGL Report,每一步之后都可以通过这个网站来查看操作是否成功。
1. 重装最新 chrome 浏览器
重装总是能解决90%的奇怪问题
2. 开启 chrome 硬件加速
打开 chrome 设置,『显示高级设置』,找到『系统』,在『使用硬件加速模式』选项前打钩。重启浏览器。
3. 开启 WebGL:--disable-webgl
打开 chrome://flags 面板(将这行字输入地址栏),ctrl/command + f 搜索『--disable-webgl』并启用该选项。重启浏览器。
咦?为什么我没有这个选项?!(请看下去)
How can I enable WebGL in my browser? 这个回答中明确说需要在 chrome://flags 中启用 --disable-webgl 选项,但是为何我的 chrome 中没有这个选项了呢?
其实是因为高版本的 chrome 对 WebGL 的支持已经非常成熟和稳定,在2015年8月的时候,这个选项被当做一个 bug 移除了(详见:https://bugs.chromium.org/p/chromium/issues/detail?id=525739),所以那之后发布的 chrome 浏览器就不再显示这个选项,webgl 是默认开启的,也就不需要手动『启用』了。
4. 查看浏览器显卡支持
如果以上方法都行不通,那就比较麻烦了。请继续看下去。
首先,你可以打开 chrome://gpu 查看显卡对浏览器特性的支持度,看看到底是那儿出了问题。Graphic Feature Status 中对 WebGL 一项的支持状态可能为:
- Hardware accelerated:WebGL 已启用,并获得了显卡支持
- Software only, hardware acceleration unavailable:WebGL 已启用,但没有显卡支持,只有软件渲染支持
- Unavailable:WebGL 既没有显卡支持也没有软件支持
WebGL 应用一般需要显卡加速,如果你的浏览器显示 WebGL 未获得显卡支持(即显示为后面两项)则你电脑的显卡可能进入了 chrome 的黑名单。
5. 显卡黑名单
有一些显卡和显卡驱动因为 bug 太多会导致浏览器崩溃甚至系统崩溃,所以很多浏览器都有一个显卡黑名单,对这些有问题的显卡和驱动,浏览器将不启用硬件加速。可以在 chrome://flags 中开启 --ignore-gpu-blacklist 来无视这个黑名单(不推荐,可能会引发浏览器崩溃或者系统崩溃)。chrome 的显卡黑名单在这里:BlacklistsAndWhitelists - WebGL Public Wiki。
你的显卡是否被黑名单是根据你的显卡驱动版本来判断的,如果你发现你只要开启『覆盖软件渲染列表』就能使用WebGL应用很可能是因为你的驱动版本过低,推荐你先去看看你的显卡有没有可用的新鲜驱动,更新一下显卡驱动再回过头来把这个选项关闭,重启浏览器试试看是不是能正常开启WebGL应用。如果可以,那么恭喜你!你不需要再开启这个不保险的配置项啦!
5.1 换成Firefox 强行开启 WebGL
我发现在有些操作系统上(如xp),Firefox浏览器对显卡驱动的版本要求比Chrome低,也就是说,在这些系统版本是Firefox可能可以正常开启WebGL应用当Chrome不能够的时候。
Here Be Dragons
Type about:config in Firefox’s address bar and make the following changes:
- To enable WebGL, set webgl.force-enabled to true.
- To enable Layers Acceleration, set layers.acceleration.force-enabled to true
- To enable Direct2D in Windows Vista/7, set gfx.direct2d.force-enabled to true
Now, cross your fingers, restart Firefox and try running a WebGL application. It’s probably best to undo those changes if smoke starts pouring from your PC.
以上来自:How to Enable WebGL for Blocked Graphics Cards in Firefox 这篇文章,关于如何在非常恶劣的情况下用火狐浏览器开启 webgl。是我在搜索 xp 是否支持 webgl 的时候找到的。翻译一下:
以下操作可能很危险!
在火狐的地址栏输入 about:config 进入设置页面,会出现一个⚠️警告页面,请仔细阅读,自己承担风险!
- 开启 WebGL,把 webgl.force-enabled 设置成 true(双击即可)
- 开启 Layers Acceleration,把 layers.acceleration.force-enabled 设置成 true
- 开启 Direct2d 在 win vista 或 win7,把 gfx.direct2d.force-enabled 设置成 true
现在你应该可以使用 WebGL 了。
6. 如果还是不行...
可能你需要换一台电脑了~
参考资料:
- How can I enable WebGL in my browser?
Can I use... Support tables for HTML5, CSS3, etc - WebGL Water(封面)
mapbox加载高程图结果谷歌浏览器提示无法初始化WebGl???相关推荐
- 解决VB6.0中不能加载MSCOMCTL.OCX的错误提示
VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OC ...
- Mapbox加载天地图CGCS2000矢量瓦片地图服务
1.背景 最近在做天地图的项目,要基于MapBox添加CGCS2000矢量切片数据,但是 Mapbox 只支持web 墨卡托(3857)坐标系的数据.Github有专业用户修改了mapbox-gl的相 ...
- vbnet加载ocx控件不能生成窗体_解决VB6.0中不能加载MSCOMCTL.OCX的错误提示
VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OC ...
- android加载长图宽度自适应,Android使用Glide加载超长图
app项目开发过程中,大都有查看图片详情的功能模块.实现的方式一般都是通过viewpager+photoView+Glide的方式.这种方式下,如果碰到加载超长图,比如说高清版的清明上河图/世界地图, ...
- android仿ios菊花,简易仿ios菊花加载loading图
项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loading,一般用的比较多的是仿照ios 的菊花加载loading 图,当然一些条件下还会涉及到加载成功/ 失败情况 ...
- Android 高清加载巨图方案 拒绝压缩图片
Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49300989: 本文出自: ...
- Android之SubsamplingScaleImageView加载长图不能放缩问题
1 问题 第三方开源框架用了这个第三方开源框架(SubsamplingScaleImageView)加载长图,但是源代码在有些手机上面不能进行放缩. private void displayLongP ...
- Javascript前端加载等待圆型圈提示实现效果
Javascript前端加载等待圆型圈提示实现效果 CSS内容 #loading {background-color: #9f9f9f;opacity: 0.15;height: 100%;width ...
- 安卓 加载服务器图片不显示图片,android 从服务器加载.9图
问题描述: APP启动时, 广告页的图片是从服务器上获取, 这个图片一般需要全屏显示, 这个怎么适配呢? 解决方法1: 如果使用android:scaleType="fitXY"属 ...
- Cesium Primitives加载大量图标点
Cesium Primitives加载大量图标点 前言 效果 关键代码 前言 使用entity的方式加载大量图标点会出现卡顿现象,cesium提供了BillboardCollection可以实现大量图 ...
最新文章
- openlayers map获取全部feature_tf2.0基础-tf.data与tf.feature_column
- SAP RETAIL MM42维护商品采购信息记录数据的缺陷
- @ResponseBody 乱码
- 为什么小程序裂变,最终都变成了利益驱动?
- VTK:Filtering之VectorFieldNonZeroExtraction
- 查看openssh版本_OpenSSH命令注入漏洞复现(CVE202015778)
- 标图123123666
- rsync本地模式讲解04
- bzoj2648/2716 kdtree
- 远程计算机蓝屏,什么原因造成了蓝屏 电脑蓝屏错误代码介绍
- 越过山丘才发现无人等候 倒计时84
- Windows11便签工具在哪 win11的便签在哪里打开
- 使用vue-video-player实现直播
- Lua弱引用表处理普通的内存泄漏
- 2023,快手仍是品牌、商家最值得投入的流量洼地
- 萨姆·阿尔特曼:如何获得成功(How To Be Successful)译文
- 【数据结构之哈希表(二)】 哈希表的扩容实现机制
- ERP编制物料清单 基础
- 是 公安大学王大伟教授写的文章~~~
- 一步一步学ActionScript 2.0(六)