WebGL 探秘 (3)
来源:zidea     阅读:511
微上宝科技
发布于 2019-02-24 21:24
查看主页

这里对程序进行,之所以为什么这样校验个人暂时也不太懂,只是 copy,预计应该便于我们开发人员进行调试吧。

gl.validateProgram(shaderProgram)if(!gl.getProgramParameter(shaderProgram,gl.VALIDATE_STATUS)){    console.log("ERROR validating program ",gl.getProgramInfoLog(shaderProgram))}

这里我们定义三角形的顶点坐标,我们回到看一下 attribute vec2 vertPosition; 所以我们的顶点坐标是二维的,所以每两个点定义一个坐标,而后这些坐标组成一个数组用来表示三角形,具体这里数值怎样来的,为什么是这个数值。随后分享

const triangleVertices = [        0.0,0.5,        -0.5,-0.5,        0.5,-0.5    ];
  1. 首先为三角形创立一个位置的 buffer
  2. 而后为 buffer 指定类型
  3. 而后将我们三角形的顶点坐标给定buffer类型
 var triangleVertexBufferObject = gl.createBuffer();    gl.bindBuffer(gl.ARRAY_BUFFER, triangleVertexBufferObject);    gl.bufferData(gl.ARRAY_BUFFER,        new Float32Array(triangleVertices),        gl.STATIC_DRAW);

这里我们定义属性这是需要传入 shader 进行计算的我们定义本地数据 vertPosition

var positionAttribLocation = gl.getAttribLocation(shaderProgram,'vertPosition')

vertexAttribPointer 这个函数接受 5 参数

 const numComponents = 2;    const type = gl.FLOAT;    const normalize = gl.FALSE;    const stride = 2 * Float32Array.BYTES_PER_ELEMENT;    const offset = 0;    gl.vertexAttribPointer(        positionAttribLocation,        numComponents,        type,        normalize,        stride,        offset);

drawArrays 多半时候我们都是在绘制三角形,三角形是我们做动画的基础,有时候也会绘制点和线

 gl.enableVertexAttribArray(        positionAttribLocation); gl.useProgram(shaderProgram)    gl.drawArrays(gl.TRIANGLES,0,3)   
007.JPG
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
网页渐层背景产生器,选择颜色即时预览建立CSS 原始码
小白:小白肯定要看的哟 MYSQL基本详情
web开发中该用 em 还是 rem 呢?
快速排序示范-从小到大 关键操作“记录下标,使用递归”
为什么自学web前台容易失败了?根据数千名新手程序员得出结论
首页
搜索
订单
购物车
我的