在跟随书本编写基础的webgl程序时,会需要引入三个函数库:webgl-utils、webgl-debug、cuon-utils等 我们可以直接到github上下载就行,下面是下载地址webgl编程指南所需函数库

继续上一章的 学习

书本继续介绍了清空绘图区也就是将canvas画布使用某一种颜色填充背景色代码如下

function main() {
    //获取canvas元素
    var canvas = document.getElementById("webgl");
    if(!canvas){
        //如果获取不到canvas对象则输出提示语句
        console.log('Failed to retrieve the <canvas> exement');
        return;
    }
    //获取绘制二维图形的绘图上下文,该函数即为外部函数库cuon-utils.js内定义的使用script标签引入即可
    var gl = getWebGLContext(canvas);
    //指定清空canvas的颜色
    gl.clearColor(0.0,0.0,0.0,1.0);
    //清空canvas
    gl.clear(gl.COLOR_BUFFER_BIT);
    //背景色一旦指定之后,在下一次调用gl.clear()方法之前不会改变
}

gl.COLOR_BUFFER_BIT 指定颜色缓存

gl.DEPTH_BUFFER_BIT指定深度缓冲区

gl.STENCIL_BUFFER_BIT指定模板缓冲区

绘制一个点HelloPoint1.js(着色器使用)

//顶点着色器
var VSHADER_SOURCE = `void main(){
    gl.Position = vec4(0.0,0.0,0.0,1.0)//设置所绘制点的坐标
    gl.PointSize = 10.0//设置点的尺寸
}`
//片元着色器
var FSHADER_SOURCE = 
`void main(){
    gl_FragColor = vec4(1.0,0.0,0.0,1.0);
}`
function main(){
    var canvas = document.getElementById("webgl");
    
    var gl = getWebGLContext(canvas);
    if(!initShader(gl,VSHADER_SOURCE,FSHADER_SOURCE)){
           
    }

    //指定清空canvas的颜色
    gl.clearColor(0.0,0.0,0.0,1.0);

    //清空canvas
    gl.clear(gl.COLOR_BUFFER_BIT);

    //绘制一个点
    gl.drawArrays(gl.POINTS,0,1);
}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐