webgl绘制粗线段

webgl1不支持设置线段宽度,这就只好通过shader来实现了,参考了踏得网的例子,引用地址:http://wow.techbrood.com/fiddle/43140。先在此感谢踏得网创始人之一 Ryan.chen 陈晓峰。介绍一下踏得网,这是一个推广交流webgl的网站,同学们可以去学习交流。由于本文代码完全抄用踏得网的例子,所以本文不是案例原创,但本文会将对借鉴代码的理解详细分析。   我们先贴出shader着色器代码,来看一下。 复制代码 复制代码 首先我们来分析一下顶点着色器vertex,只有一个attribute参数,是vec2类型的参数 aVertexPosition,线段的两个顶点坐标。接下来看片段着色器fragment,也只有一个参数,uniform参数,参数类型vec4,是传入的线段颜色参数。顶点着色器的主函数只是将gl_Position设置为线段的顶点坐标,片段着色器的主函数也仅仅是将gl_FragColor设置成参数传入的线段颜色。就是说线段上每一个position的顶点像素的颜色都是参数传入的线段颜色。   接下来我们来看js代码。 复制代码 复制代码 我们看到,线段的顶点是vertices,其中有6组顶点,线段的颜色是黄色,就是这段代码 复制代码 program.uColor = gl.getUniformLocation(program, "uColor"); gl.uniform4fv(program.uColor, [1.0, 1.0, 0.0, 1.0]); 复制代码 我们可以看一下结果,如下图 我们看到,这条线段是2D的矩形,并不是3D意义上的粗线段,还有一种思路,可以画一个圆柱代替线段。   以上就是踏得网的粗线段的例子。https://www.cnblogs.com/ccentry/p/10164123.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信