webgl|webgl 绘制多个点
在是使用 js 定点位的时候,需要建立一份顶点数据给着色器.让着色器根据这份顶点数据绘图
- 建立顶点数据,两个浮点数据构成一个顶点,分别代表 x,y
const vertices=new Float32Array([
//xy
0.0,0.1, //顶点
-0.1,-0.1, //顶点
0.1, -0.1//顶点
])
【webgl|webgl 绘制多个点】顶点数据存储在 js 缓冲里面的,着色器拿不到,所以我们需要建立一个着色器和一个公共区
- 建立缓冲对象
const vertexBuffer=gl.createBuffer();
缓冲区是独立存在的,需要让缓冲器和着色器建立联系
gl.bindBuffer(gl.ARRAY_BUFFER,vertexBuffer);
- 往缓冲器写入数据
gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW);
- 把缓冲器对象分配给 attribute 对象
const a_Position=gl.getAttribLocation(gl.program,'a_Position');
gl.vertexAttribPointer(a_Position,2,gl.FLOAT,false,0,0);
- 开启顶点数据的批处理功能
gl.enableVertexAttribArray(a_Position);
- 绘图
gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawArrays(gl.POINTS, 0, 3);
- 完整代码如下
- 锐客网 #canvas {
/* width: 100px;
*/
/* height: 100px;
*/
/* background: red;
*/
}
推荐阅读
- Android|Android install 多个设备时指定设备
- K8S|K8S 生态周报| Istio 即将发布重大安全更新,多个版本受影响
- Python绘制小红花
- 如何将多个小分子文件合并为单个
- 参与设计20多个区块链经济系统,我总结出4个原则和7个陷阱
- OpenGL|OpenGL 绘制甜甜圈深度测试、多边形偏移、裁剪、 混合
- 把知识编成网纺成布
- java多线程-锁
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务
- tomcat|tomcat配置多个项目的server.xml的配置