WebGL 绘制Line的bug(一)

熟悉WebGL的同学都知道,WebGL绘制模式有点、线、面三种;通过点的绘制可以实现粒子系统等,通过线可以绘制一些连线关系;面就强大了,通过面,我们可以绘制我们想绘制的所有的三维对象。

一切看起来都很完美,perfect。

然而,不幸的是,WebGL在绘制线条的时候,存在一个缺陷,那就是在一些机器的一些浏览器上面(应该是大多数情况下)线宽只能设置为1,而不能设置成其他的值。

通过网址http://alteredqualia.com/tmp/webgl-linewidth-test/,我们可以测试自己的电脑是否有线宽的不能设置的bug,以下是我的电脑(mac 电脑)用chrome(版本59.0.3071.115)的测试效果:

macOS chrome测试效果

(麻蛋,以前的mac 下的chrome是好使的,看来这病越来越严重了)

用firefox试试:


macOS下firefox测试结果

在firefox下面看来还是正常的。

事实上,这是一个长久以来一直存在的bug,下面这个地址就是证明:

https://bugs.chromium.org/p/chromium/issues/detail?id=60124


Line width bug 

很早之前就有人提过了,只是一直没有解决。

这是病,得治,只是那些搞浏览器大佬们不想出药。

我们就只能想点偏方来自己治疗了。 

偏方是啥,由于Line的线宽是底层问题,我们并不好解决;不过,我们可以考虑通过面的绘制来模拟线,线的特点就是不随镜头变化而改变宽度,只要能够达到这个特点就可以达到模拟的效果。

下一篇将会介绍 如何通过三角形(面)的方式来模拟线条的绘制。

如果你对WebGL 感兴趣,可以了解下我们用WebGL开发的3D机房项目:

HTML5,不只是看上去很美(第二弹:打造最美3D机房)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 上一篇已经讲述了通过面模拟线条时候,每一个顶点的顶点数据包括:端点坐标、偏移量、前一个端点坐标、后一个端点坐标,当...
    ITman彪叔阅读 4,073评论 0 2
  • 浏览器发展史 现在浏览器已经成为网上生活的重要家园和工具。而从1991年,Web之父Tim Berners-Lee...
    波段顶底阅读 17,806评论 6 86
  • 珍惜现在的别人对自己的爱,用心感受这份爱。 故事开始在最初的那个爱情中,她过得很幸福,那时满天的星光只因她而...
    追逐萤火般的光芒阅读 4,274评论 0 0
  • 本文集仅供摘抄用。 ↑重要的事请自行默读三遍。↑ 第二本 《西游殇》 作者页:傅人目录页:西游殇目录 故事梗概:...
    抱雪球球阅读 2,555评论 0 1
  • 我以为我超规划联系好了 但还是错了 面对自己的无能非常愤怒 一下班就冲回家 敏儿回来了 带了好多礼物 么么哒 晚上...
    角落蜷缩阅读 1,229评论 0 0

友情链接更多精彩内容