`
flyfox1982
  • 浏览: 80870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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的线宽是底层问题,我们并不好解决;不过,我们可以考虑通过面的绘制来模拟线,线的特点就是不随镜头变化而改变宽度,只要能够达到这个特点就可以达到模拟的效果。

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

 

更多精彩内容,请关注公众号。

 

ITman彪叔公众号
ITman彪叔公众号
0
0
分享到:
评论

相关推荐

    WebGL之绘制三维地球.docx

    构建网格是绘制三维地球的第一步,我们需要建立球体的三维模型,该模型包括四个属性:顶点(position)、法线(normal)、贴图坐标(uv)和顶点索引(indices)。其中,顶点坐标用来确定三维模型的形状,法线用来...

    通过js底层获取H264的数据,然后通过webgl绘制出来

    看的懂,需要自己具备对js有自己的理解,原型链,this的指向,c++,webgl的基本理解和使用,ip地址是不能看的,因为播放的流量都是收费的,如果你们有ip,可以连接你们自己的ip地址,逻辑就是这样的逻辑,你让我分析...

    网页动画素材 WebGL基于canvas画布绘制3D噪音线条酷炫动画特效。(抖音资料)

    网页动画素材 WebGL基于canvas画布绘制3D噪音线条酷炫动画特效。(抖音资料)网页动画素材 WebGL基于canvas画布绘制3D噪音线条酷炫动画特效。(抖音资料)网页动画素材 WebGL基于canvas画布绘制3D噪音线条酷炫动画...

    html5 webgl绘制3D洞穴穿越无限延伸动画特效.zip

    这个“html5 webgl绘制3D洞穴穿越无限延伸动画特效.zip”文件包含了一套完整的实现3D洞穴穿越效果的代码示例,对于学习和应用WebGL的开发者来说,这是一个非常实用的学习资源。 首先,我们要理解WebGL的基本概念。...

    WebGL-water

    在Web环境中,WebGL通过JavaScript与GPU进行交互,绘制复杂的3D场景。开发者可以通过顶点着色器和片段着色器来定义物体的形状和颜色,这些着色器是用类似于C的语言GLSL(OpenGL Shading Language)编写的。 在WebGL...

    image3D::tangerine: 使用webGL绘制三维图片。:bar_chart::chart_increasing::party_popper:Drawing three-dimensional images using webGL

    :tangerine: image3D使用webGL绘制三维图片。:bar_chart::chart_increasing::party_popper: Drawing three-dimensional images using webGL.鉴于当前浏览器支持情况,本项目只支持webGL 1上下文,更高级版本未来会...

    WebGLVolumeRendering, WebGL体绘制容易.zip

    WebGLVolumeRendering, WebGL体绘制容易 WebGL体绘制容易一个非常简单的步骤介绍像素着色器体渲染使用和 ThreeJS 。转到 http://lebarba.com/blog/ 一步教程中的步骤在 GitHub http://www.lebarba.com/WebGL/

    webgl 实现的炫酷地球 基于three.js

    WebGL是一种在网页上实现3D图形渲染的技术,它允许开发者在浏览器中创建交互式的、图形丰富的应用程序,而无需任何插件。Three.js是基于WebGL的JavaScript库,它简化了WebGL的复杂性,提供了丰富的功能和易用的API,...

    WebGL+鼠标响应+如何绘制爱心.rar

    这个压缩包文件“WebGL+鼠标响应+如何绘制爱心.rar”提供了一个使用WebGL、HTML5和JavaScript技术的示例,帮助学习者理解如何通过用户交互在网页上动态绘制图形,特别是爱心形状。 在《计算机图形学》中,WebGL是...

    WebGL 3D雪花飘落动画特效.zip

    【WebGL 3D雪花飘落动画特效】是一种利用JavaScript和WebGL技术在网页上实现的视觉效果。WebGL(Web Graphics Library)是基于OpenGL标准的JavaScript API,它允许开发者在浏览器环境中创建交互式的3D图形,无需插件...

    HTML5 javascript调用WebGL实现 下雪闪电打雷下雪天气效果天气现象 太逼真了,这其实就是游戏开发了.zip

    HTML5 javascript调用webgl实现 下雪闪电打雷下雪天气效果天气现象 太逼真了,这其实就是游戏开发了.zip

    WEBGL_webgl_

    WebGL是一种基于OpenGL标准的JavaScript API,用于在任何兼容的Web浏览器中实现交互式的2D和3D图形渲染。这个“WEBGL_webgl_”很可能是一份教程或教材,旨在帮助初学者掌握WebGL技术,并随着学习者的进步不断更新...

    Unity通用WebGL模板Universal WebGL Template 1.2.1

    Unity通用WebGL模板Universal WebGL Template 1.2.1是一个专为开发WebGL游戏或应用程序设计的工具。Unity是一款强大的跨平台游戏引擎,它允许开发者创建高质量的3D和2D游戏,并将其发布到多种设备上,包括浏览器。...

    webgl-debug.js

    WebGL是一种基于OpenGL标准的JavaScript API,用于在任何兼容的Web浏览器中进行2D和3D图形渲染,无需插件。"webgl-debug.js"是一个专门针对WebGL编程的调试库,它通常用于帮助开发者更好地理解和解决问题,提高WebGL...

    webGL编程示例源码

    WebGL 是一项在网页上渲染三维图形的技术,也是HTML5 草案的一部分。 《WebGL编程指南》的主要篇幅讲解了WebGL 原生API 和三维图形学的基础知识,包括渲染管线、着色器、矩阵变换、着色器编程语言(GLSL ES)等等,...

    使用webGL绘制三维图片

    WebGL的核心在于一个渲染上下文,它负责在`<canvas>`元素上进行图形绘制。当创建WebGL上下文时,开发者可以设置颜色、深度和模板测试,创建顶点缓冲区,定义着色器,以及管理纹理等。 3. **着色器语言GLSL**: ...

    一种基于WebGL技术的网页端大量二维文字绘画技术_大量二维文字_webgl_three.js_

    一种可以在基于WebGL技术的主流浏览器上显示巨量二维矢量文本文字而不会明显增加浏览内存消耗和明显增加前端网页转化文本矢量数据所需时间的技术。通过此技术可以在一些低配置的设备上展示WebGL时当展示内容含有巨量...

    webgl入门-基础矩形绘制

    webgl入门-基础矩形绘制

    WebGL 开发介绍.zip

    3. 绘图上下文:在HTML5 `<canvas>` 元素中,WebGL创建了一个绘图上下文,允许开发者绘制复杂的3D场景。 二、WebGL的工作原理 1. 渲染管线:WebGL遵循OpenGL的渲染管线模型,包括顶点处理、几何变换、光栅化和像素...

Global site tag (gtag.js) - Google Analytics