OpenGL、OpenGL ES、Canvas、WebGL概念梳理

如何学习OpenGL、OpenGL ES、Canvas、WebGL

当你开始思考你应该如何学习OpenGL、OpenGL ES、Canvas、WebGL的时候,相信你至少对相关的关键词了解过了,还不太清楚OpenGL、OpenGL ES、Canvas、WebGL是什么,个人建议是不要做过多思考,先看看相关的具体技术教程、资源文献、论坛帖子,随着时间的推移你自然会明白OpenGL、OpenGL ES、Canvas、WebGL等关键词指什么。

OpenGL

OpenGL是一组引擎驱动级别的、用于渲染2D、3D矢量图形的API接口。OpenGL不是一种语言,你可以把它理解成一个C运行时的函数库,里面提供了各种用于绘图的API函数接口。

OpenGL ES

OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。

WebGL

WebGL(Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 结合在一起,通过增加OpenGL ES 的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。

一句话来描述,WebGL API指的就是gl=canvas.getContext(‘webgl’)返回对象gl的一系列绘制渲染方法,通过WebGL API可以把一个三维场景绘制渲染出来。比如上面代码中gl.createShader()、gl.shaderSource()、gl.drawArrays()等方法就是WebGl API。

如果你有 数字电路的知识,可编程芯片不仅仅只有GPU,针对不同的应用情形,都有特定的可编程芯片,图形处理用到的是可编程GPU,也就是说可以运行程序。处理声音是声卡,处理图像是显卡,自然而然它们 都会以CPU为核心,接受CPU的调度。以上描述在有些地方可能不太严谨,大家也不必记忆,主要目的是让大家有基本的认识,可以更好的编写程序。GPU相比CPU最大的特点是并行计算,不过WebGL API都 进行了封装,如果你想学习并行计算可以关注CUDA或OpenCL。GPU硬件(渲染管线)、显卡驱动、操作系统、浏览器、WebGL API是逐层抽象的。每一层都会为上一层提供一个接口,这里可以看出WebGL API是 首先通过浏览器的的解析,才能够经过一系列层驱动GPU工作,生成像素缓存,显示器会按照一定的频率扫描像素缓存,最终显示出来。

Canvas

首先,HTML的Canvas元素提供了2D和3D绘图两种功能,平时程序员之间交流所说的Canvas一词就是指Canvas的2D绘图功能,通过Canvas元素实现的3D绘图功能,也就是所谓的WebGL,或者说WebGL依赖于Canvas元素实现。执行canvas.getContext(‘2d’);返回对象具有一系列绘制二维图形的方法,比如绘制直线、圆弧等API。执行canvas.getContext(‘webgl’);返回对象具有一系列绘制渲染三维场景的方法,也就是WebGL API。

总结

综上所述,Canvas(画布)只是HTML里面的一个元素,是呈现2D、3D绘图的基础,通过Canvas标签对象的getContext()方法,可以针对性的获取2D、3D绘图的一系列API方法。此外,OpenGL标准应用的是客户端,OpenGL ES应用的是移动端,WebGL标准应用的是浏览器平台。

至此,完毕。该篇文章仅做个人学习笔记使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值