WebGL学习笔记 | 使用着色器绘制一个点

本文是WebGL学习系列的一部分,讲解如何利用顶点和片元着色器程序在屏幕上绘制一个点。首先介绍顶点着色器,其中`gl_Position`用于设定顶点位置,`gl_PointSize`设定点的尺寸。接着阐述片元着色器,通过`gl_FragColor`控制像素颜色。最后,在JavaScript中启用绘制,调用`gl.drawArrays()`完成绘制任务。
摘要由CSDN通过智能技术生成

前一篇 《WebGL学习笔记 | 创建着色器程序》介绍了如何创建着色器程序,这次我们让着色器程序运行起来,并在屏幕上绘制一个点。

1. 顶点着色器程序

完整的着色器程序分为顶点着色器程序片元着色器程序,我们先看下顶点着色器的程序代码,将它定义为一个JavaScript字符串:

//顶点着色器程序	
var VSHADER_SOURCE = `	
  void main() {	
    //设置一个坐标点	
    gl_Position = vec4(0.0, 0.0, 0.0, 1.0);	
    //设置点的大小	
    gl_PointSize = 4.0;                    	
  }	
`

顶点着色器是用来描述顶点特性比如:位置和大小,它是指二维或三维空间中的一个点,顶点着色器中有两个内置变量:

  • gl_Position:表示顶点位置

  • gl_PointSize:表示点的尺寸(像素,默认为1.0)

上面代码中 gl_Position 内置变量必须被赋值,否则着色器就不能正常工作,gl_PointSize 则不是必须的,它的默认值为1.0 。

注意我们给 gl_Position 赋值了一个矢量 vec4 它内部是由 4 个浮点数组成,但是这里只用了三个即:x、y、z,第四个分量设置为 1.0 在这里被称之为齐次坐标,因为它能够提高处理三维数据的效率,所以被三维图形系统大量使用。

当需要使用齐次坐标表示顶点坐标时,只需要将最后一个分量置为 1.0 即可。

齐次坐标:齐次坐标使用(x, y, z, w)表示,等价于三维坐标(x/w, y/w, z/w),所以如果齐次坐标的第 4 个分量是 1,就可以将它当三维坐标使用。

2. 片元着色器程序

片元可以理解为逐像素处理过程,严格意义上说片元还包括:像素的位置、颜色和其它信息。

//片元着色器程序	
var FSHADER_SOURCE =`	
    void main() {	
        //设置点的颜色	
        gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);	
    }	
`;

gl_FragColor 是片元着色器中的唯一内置变量,它控制像素在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值