webgl学习笔记2--图形绘制的几个重要方法详解

本文深入讲解了在WebGL中进行图形绘制的关键步骤,包括创建着色器程序和数据缓存的方法。首先,详细阐述了如何使用gl.createShader、gl.shaderSource和gl.compileShader等方法创建并编译着色器,接着介绍了如何创建和使用数据缓存,如gl.createBuffer、gl.bindBuffer和gl.bufferData。这些内容对于理解WebGL图形渲染流程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一章内容介绍了如何在2D范围内绘制一个基本的图形,本章将重点介绍webgl再绘制图形中用到的几个方法:

一, 创建着色器程序的几个方法:

1.gl.createShader(type) 根据传入type类型创建一个着色器对象

type: gl.VERTEX_SHADER或gl.FRAGMENT_SHADER


2.gl.shaderSource(shader, shaderSource)将着色器的源代码传入着色器对象

shader为刚创建的着色器对象,shaderSource为着色器源代码,即ESGL着色语言写的顶点或片元


3.gl.compileShader(shader) ,着色对象传入数据后,可以用此方法编译,返回编译好的着色器

此时,着色器对象shader已经是编译后、并区分类型的着色器


4.gl.createProgram(), 创建着色器收集程序来保存上方的着色器对象

var shaderProgram = gl.createProgram();

// 将着色器对象保存到程序上

gl.attachShader(shaderProgram,  shader);

// 执行链接操作,

gl.linkProgram(shaderProgram);

// 告诉webgl引擎,这个程序对象绘制图形可用

gl.useProgram(shaderProgram);


// 将aVertexPosition的引用从着色程序中提出(方便将来赋值),至此,着色器程序已经准备

var shaderProgram.属性 = gl.getAttribLacation(shaderProgram. 'aVertextPostion');


二、创建数据缓存的几个方法

1.createBuffer(),  建立一个webglBuffer对象(可以看作数据缓冲区),保存顶点数据

2.gl.bindBuffer(gl.ARRAY_BUFFER,  bufferObject);      将新建的buffer对象绑定为当前数据缓存对象

3.gl.bufferData(gl.ARRAY_BUFFER,  triangleVertices, gl.STATIC_DRAW); 用顶点数据trianglevertices写到当前的webglBuffer对象中,







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值