webgl画一个和多个点
使用WebGL画点
webgl给我的感觉就像是老太太的裹脚布,又臭又长。层层封装,每个人代码都不一样,缺少统一的接口。
自顶向下有理论,guide讲的清楚,但是教材是自顶向下,所以要把guide的代码都搬过去。
着色器
顶点着色器控制点的位置和大小,片元着色器控制点的颜色。
函数调用关系:
gl.drawArrays()->顶点着色器->main->片元着色器->main
取出点并赋值
var program = initShaders( gl, "vertex-shader", "fragment-shader" ); gl.useProgram( program ); gl.program = program;
获取program中一个点,然后传值。
var a_Position = gl.getAttribLocation(gl.program, 'a_Position'); gl.vertexAttrib3f(a_Position, 0.0, 0.0, 0.0);
attribute是沟通的桥梁,也可以说是沟通的约定,如果js要拿到program对象里的变量,就得知道attribute变量的名字。
绘制多个点
缓冲区是显存里的,能被gl访问。就像手动malloc一块内存一样
- 创建缓冲区对象:
gl.createBuffer()
- 绑定缓冲区对象,即指定用途
- 将数据写入缓冲区对象
- 将缓冲区对象分配给一个attribute变量
- 开启attribute变量
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/15362681.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本