WebGL初级 : 在鼠标点击处绘制一个随机颜色的点。

参考资料

通过对《webGL入门与实践》一书为期一周的学习,仿照书中案例,终于写出了一个基本的webGL程序,也算掌握了webGL的基本绘制过程…

涉及到的相关术语解释:

本篇内容涉及一些术语,为了便于理解,以下是对涉及到的几个相关术语的简单解释:

  1. 图元:WebGL 能够绘制的基本图形元素,包含三种:线段三角形
  2. 片元:可以理解为像素,像素着色阶段是在片元着色器中。
  3. 裁剪坐标系:裁剪坐标系是顶点着色器中的 gl_Position 内置变量接收到的坐标所在的坐标系。
  4. 设备坐标系:又名 NDC 坐标系,是裁剪坐标系各个分量对 w 分量相除得到的坐标系,特点是 x、y、z 坐标分量的取值范围都在 [-1 , 1]之间,可以将它理解为边长为 2 的正方体,坐标系原点在正方体中心。

目标

实现一个简单的 WebGL 程序:鼠标点击一次,就会在点击位置处绘制一个随机颜色的点。麻雀虽小,但五脏俱全,使用 WebGL 绘制一个点虽然简单,但是它仍需要 JavaScript 程序和着色器程序共同完成。
所以通过这个例子,能够基本掌握 WebGL 的绘制过程。
效果如下:
在这里插入图片描述

编写程序

1、准备着色器源码

着色器程序开始入手,先用GLSL编写顶点着色器片元着色器

顶点着色器
void main(){
   
   
    //声明顶点的位置
    gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
    //声明待绘制点的大小。
    gl_PointSize = 10.0;
}
片元着色器
void main(){
   
   
    //设置像素的填充颜色为红色。
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); 
}

至此,我们完成了着色器的开发,是不是灰常 easy 呢?

2、准备 HTML 文件

HTML 文件至少需要包含一个 canvas 标签,另外需要两个存储着色器源码script 标签。

<body>
	<!-- 顶点着色器源码 -->
	<script type="shader-source" id="vertexShader">
	 void main(){
    
    
  		//声明顶点位置
  		gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
  		//声明要绘制的点的大小。
  		gl_PointSize = 10.0;
  	}
	</script>
	
	<!-- 片元着色器源码 -->
	<script type="shader-source" id="fragmentShader">
	 void main(){
    
    
	 	//设置像素颜色为红色
		gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); 
	}
	</script>
	
	<canvas id="canvas"></canvas>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值