Canvas、 SVG 和WebGl三者之间的区别_加油小吃货的博客
文章推薦指數: 80 %
概要:Canvas 位图,是需要自己画点的白板; SVG 矢量图,是给数据就可以绘制点、线、图形的,基于XML 的标记语言; WebGL 3D位图,是基于Canvas 的3D ...
Canvas、SVG和WebGl三者之间的区别
加油小吃货
于 2018-03-2810:20:06 发布
16421
收藏
6
分类专栏:
Web绘图
文章标签:
canvas
webGL
svg
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Thea12138/article/details/79723380
版权
Web绘图
专栏收录该内容
1篇文章
0订阅
订阅专栏
概要:
Canvas位图,是需要自己画点的白板;
SVG矢量图,是给数据就可以绘制点、线、图形的,基于XML的标记语言;
WebGL3D位图,是基于Canvas的3D框架。
说明:
SVG只是一种矢量图形文件格式,不仅现在的浏览器都支持,很多主流的系统也都支持。
可以代替一些图片,多用于图标,以及图表上,优势在于拥有HTML的event事件,交互起来很方便。
Canvas是HTML5新增的一个元素对象,名副其实就是一个画布,浏览器js配有相应的操作api,可以不再依赖其他的API或组件而直接绘图,相当于2D的API。
一般用于绘制比较复杂的动画,做游戏之类的,由于canvas是HTML5带的,所以不支持低版本浏览器,特别是IE,canvas只是一个画布,绘制上去的东西,例如图片,都是转换成像素点绘制上去的,所以没有event事件,如果需要添加交互事件,需要自己手动计算绘制的对象所在坐标以及层级,还好这部分有第三方库。
基本上除了HTML5游戏,一些酷炫的动画,正常的网页交互很少用到.
WebGL是以OpenGLES2.0为基础的一套浏览器3D图形API(HTML5),在编程概念上与OpenGLES2.0几乎是完全通用的,同样采用可编程渲染管线,也就是每个顶点的处理受到一小段VertexShader代码的控制,每个像素的绘制过程也受到一小段FragmentShader代码的控制。
WebGL主要是3D为主,不过2D的绘图要求也可以变通来实现。
WebGL无论如何都需要一个显示对象来呈现,这个对象就是Canvas,仅此而已,WebGL不对Canvas有任何附加的操作API,那部分属于浏览器js支持的范畴。
可
看作能在浏览器上运行的OpenGL,WebGL的HTML节点名称用的也是canvas,但是他的渲染则和canvas不同,他可以支持硬件加速,支持3D,可用于3D游戏的开发,目前很少有3D的HTML5游戏,现在你能看到很多酷炫的图形交互的3D图表,大多用WebGL来渲染的。
WebGL也继承OpenGLES2.0的兼容性支持能力,在不同的设备上做有限的支持,需要运行时查询。
Three.js、Babylon.js、Blender4Web等是几种知名的WebGL开发框架,对WebGL基础操作做了大量的封装,可以拿来就用,即使不了解WebGL规范的细节。
用途:
Canvas适用于位图,高数据量高绘制频率(帧率)的场景,如动画、游戏;
SVG适用于矢量图,低数据量低绘制频率的场景,如图形、图表;
WebGL主要用来做3D展示、动画、游戏。
加油小吃货
关注
关注
3
点赞
踩
6
收藏
打赏
0
评论
Canvas、SVG和WebGl三者之间的区别
概要:Canvas位图,是需要自己画点的白板; SVG矢量图,是给数据就可以绘制点、线、图形的,基于XML的标记语言; WebGL3D位图,是基于Canvas的3D框架。
说明: SVG只是一种矢量图形文件格式,不仅现在的浏览器都支持,很多主流的系统也都支持。
可以代替一些图片,多用于图标,以及图表上,优势在于拥有HTML的event事件,交互起来很方便。
Canvas是H...
复制链接
CSDNAPP扫一扫
专栏目录
移动端webgl对比canvas性能
程序员小站
09-14
2万+
最近h5游戏火的不行,但是移动端h5性能从几年前开始就一直困扰着想要进入这个行业的开发人员,相信性能问题在最近两年依然是h5的核心问题。
h5的引擎很早以前就有了,以dom、canvas、webgl为核心的渲染技术,但是究竟哪个才能胜任移动平台呢?特别是性能较好的canvas和webgl,哪个更胜一筹?带着这个问题,笔者研究了几款手机chrome浏览器上的
超快的2d渲染引擎支持webgl和canvas渲染让游戏制作变得超级容易
08-10
超快的2d渲染引擎,支持webgl和canvas渲染,让游戏制作变得超级容易
参与评论
您还未登录,请先
登录
后发表或查看评论
WebGL和Canvas的关系
张驰Terry
11-16
2659
定义
Canvas是HTML5提供的一个特性,你可以把它当做一个载体,简单的说就是一张白纸。
而Canvas2D相当于获取了内置的二维图形接口,也就是二维画笔。
Canvas3D是获取基于WebGL的图形接口,相当于三维画笔。
你可以选择不同的画笔在上面作画。
OpenGL是底层的驱动级的图形接口(是显卡有直接关系的)类似于DirectX
但是这种底层的OpenGL是寄生于浏览器的JavaScript无法涉及的
但是为了让Web拥有更强大的图形处理能力2010年时候Web
HTML5学习总结(四)——canvas绘图、WebGL、SVG
新技术革命
03-02
497
目录
一、Canvas
1.1、创建canvas元素
1.2、画线
1.3、绘制矩形
1.4、绘制圆弧
1.5、绘制图像
1.6、绘制文字
1.7、随机颜色与简单动画
二、WebGL
2.1、HTML5游戏开发
2.2.1、Cocos2D-HTML5
2.2.2、Egret(白鹭引擎)
三、SVG
3.1、SVGHelloWrold
3.2、多种引入SVG的方法
3.3、画直线
3.4、画椭圆
3.5、文本与矩形
3.6、
WebGL和canvas渲染方式
远行的博客
04-18
1万+
Laya引擎支持WebGL和canvas两种渲染方式,可以在引擎初始化时选择渲染方式
Laya.init(width,height,WebGL);//WebGL模式
Laya.init(width,height);//canvas默认为canvas模式
canvas是一个H5标签,作用是在网页上画图,但是只支持2D,不支持3D。
WebGL是一种3D绘图标准,WebGL支持3D,且性能优于ca...
WebGL和canvas渲染方式Webkit区别
u013321328的专栏
04-17
1153
Laya引擎支持WebGL和canvas两种渲染方式,可以在引擎初始化时选择渲染方式
Laya.init(width,height,WebGL);//WebGL模式
Laya.init(width,height);//canvas默认为canvas模式
canvas是一个H5标签,作用是在网页上画图,但是只支持2D,不支持3D。
WebGL是一种3D绘图标准,WebGL支持3D,且性能优于canva...
WebGLOpenGLCanvas的区别
LANGZI7758521的专栏
08-17
2544
OpenGL是底层的驱动级的图形接口(是显卡有直接关系的)类似于DirectX
但是这种底层的OpenGL是寄生于浏览器的JavaScript无法涉及的
但是为了让Web拥有更强大的图形处理能力2010年时候WebGL被推出来
WebGL允许工程师使用JS去调用部分封装过的OpenGLES2.0标准接口去提供硬件级别的3D图形加速功能
三者的关系是JavaScript-&g...
html5canvaswebgl,对比平台--WebGL和Canvas之间的区别
weixin_42408865的博客
06-17
749
WebGL是OpenGL的版本,OpenGL是3D引擎.WebGL可以帮助用户在Web浏览器中执行3D操作。
作为HTML5的一部分,Canvas允许其用户使用动态的脚本渲染2D形状,可以将其视为具有更新位图图像的能力并且没有内置场景图的低级别。
这些在具有抽象层(例如PIXI.js)和其他一些层(例如Three.JS和Unity)的游戏(2D和3D)中使用。
WebGL和Canvas之间的主要区别两者...
canvasSVGwebGL比较
u010513603的博客
05-17
6175
https://blog.csdn.net/olevin/article/details/512964701canvasHTML5canvas也有相应的JS库。
我用过并感觉不错的有如下一些:flot,我第一个使用的canvas库。
基于jquery,支持有限的视觉形式(折线、条形、面积、点)和缩放等动画效果,简单易用。
RGraph,我第二个使用的canvas库。
有优秀的动画效果,特点是有大量的传...
I2Djs:Integrated-2D是用于SVG,Canvas和WebGL上下文的Javascript2D渲染框架。
I2Djs为所有渲染上下文提供相同的API
04-30
集成式2Djs
I2dJs-SVG+画布+WebGL
Integrated-2D-是一个开放源代码Javascript框架,用于在SVG,Canvas和WebGL上下文中呈现2D图形。
I2D的简单语法和语义使您可以将矢量图形和位图的功能结合起来,轻松实现复杂的可视化效果。
I2Djs提供了相同的应用程序编程接口,以利用它们的基础功能在不同的图形渲染上下文中创建和动画化元素。
开发人员可以利用I2D的多层上下文方法,并从多个上下文中无缝获取功能,从而在一个屋顶下创建强大的复合可视化效果。
I2D还提供了一种独特的数据驱动方法,该方法具有基于数据绑定的DOM操作的联接动作。
文献资料
正在安装
如果是npm
npminstalli2djs--save
从下面的链接下载源代码
I2Djs是用ES6模块编写的。
要导入,请使用以下语法
将所有内容导入命名空间
import
WEBGL+SVG
kobekobecheng的博客
06-26
419
WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGLES2.0结合在一起,通过增加OpenGLES2.0的一个JavaScript绑定,WebGL可以为HTML5Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。
显然,WebGL技术标准免去了开发网页专用渲染插...
[WebGL入门]二,开始WebGL之前,先了解一下canvas
热门推荐
lufy小屋
07-30
2万+
HTML5和canvas标签,canvas标签的基础知识,WebGL和canvas,总结
egret优化--自动切换webgl模式
丶党玲儿的博客
11-09
852
在egret项目中,在index可以选择renderMode,用来处理是否开启webgl
在谷歌浏览器下可以查看
webgl模式:
canvas模式:
上图可以看到:webgl模式和canvas模式,创建的element名字都是canvas.所以如果需要调用原生的element,修改层级关系.可以通过下面代码取到canvas对象
const_player=docu...
跨平台WebCanvas渲染引擎架构的设计与思考(内含实现方案)
淘系技术
03-29
4323
这篇文章主要从技术视角介绍下跨平台WebCanvas的架构设计以及一些关键模块的实现方案(以Android为主),限于作者水平,有不准确的地方欢迎指正或者讨论。
设计目标标准化:WebCa...
WebGL入门-WebGL简介与3D图形学
10-31
574
什么是WebGL?
WebGL是一项使用JavaScript实现3D绘图的技术,浏览器无需插件支持,Web开发者就能借助系统显卡(GPU)进行编写代码从而呈现3D场景和对象。
WebGL基于OpenGLES2.0,OpenGLES是OpenGL三维图形API的子集,针对手机、平板电脑和游戏主机等嵌入式设备而设计。
浏览器内核通过对OpenGLAPI的封装,实现了通...
Web绘图标准—SVG和Canvas
Ocean111best的博客
03-21
668
之前看极客时间四火老师有一节课讲到了数据可视化(参见https://time.geekbang.org/column/article/152557),讲得很好,正好跟我最近做的事情相符,这里面也总结下。
Web绘图标准
在前端绘图中,我们常见的有位图和矢量图这两种,其实有点类似我们GIS中的栅格图和矢量图
位图:通常我们谈论的图片(如png、jpg等格式)绝大多数都是位图。
位图又叫...
canvas和svg性能方面选择
weixin_34266504的博客
03-23
1000
为什么80%的码农都做不了架构师?>>>
...
三分钟带你走进可视化(对比svg、canvas、webgl)附心形线,粒子效果,三维webgl
最新发布
weixin_49834963的博客
03-23
339
复制如下代码到chrome控制台,回车
//svg
letbody=document.querySelector("body")
letsvg=document.createElementNS("http://www.w3.org/2000/svg","svg")
body.appendChild(svg)
letcircle=document.createElementNS("http://www.w3.org/2000/s
HTML5以及WebGL
李嘉昱
07-25
1700
首先来看下HTML5提供的新特性WebSocket定义了一套API,允许网页能够使用WebSocket协议来和远程主机进行双工通信。
WebStorage定义了一套API,能够在Web客户端以key-value的形式对数据进行持久化存储。
WebSQL定义了一套API,能够将数据存储在数据库,并使用类似SQL的方式进行查询。
WebWorkers定义了一套API,能够允许脚本运行于后台,进行类似于线程化的操作。
WebGl定义了一套API,
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
加油小吃货
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
31
原创
31万+
周排名
8万+
总排名
10万+
访问
等级
1183
积分
8
粉丝
27
获赞
9
评论
90
收藏
私信
关注
热门文章
Canvas、SVG和WebGl三者之间的区别
16413
微信小程序---表单输入验证(手机号、邮箱验证、输入非空)
16086
vuejs学习笔记(一),直接引入vue.js
10366
js获取各个位数的数字
8931
html页面100%缩放显示
7211
分类专栏
elementUI
3篇
条形码
1篇
win10
Web绘图
1篇
echars
3篇
百度地图
1篇
css
8篇
微信小程序
6篇
Sass
1篇
JavaScript
18篇
html
7篇
vue
12篇
最新评论
vue+elementUI走马灯自定义(指示器设为圆点,设置手动滑动切换)
Zzq_zzq_:
你好图放哪个位置
el-tree-transfer使用及踩坑坑
慕宥晶:
补充说明一下是fromData下第一层级所有{}里的pid都是0
el-tree-transfer使用及踩坑坑
suansuan_L:
请问我把pid设成0以后还是会出现这种情况是为什么呢
vue+elementUI走马灯自定义(指示器设为圆点,设置手动滑动切换)
不会霞:
感谢分享
vuejs学习笔记(一),直接引入vue.js
cnb2ccom:
....
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
iossafari中时间InvalidDate及Nah问题
vue+elementUI走马灯自定义(指示器设为圆点,设置手动滑动切换)
前端默认网页缩放90%显示
2022年3篇
2021年5篇
2020年1篇
2019年11篇
2018年21篇
目录
目录
分类专栏
elementUI
3篇
条形码
1篇
win10
Web绘图
1篇
echars
3篇
百度地图
1篇
css
8篇
微信小程序
6篇
Sass
1篇
JavaScript
18篇
html
7篇
vue
12篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
加油小吃货
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1我想与你讨论一下Canvas2D 与WebGL - SegmentFault 思否
Canvas 2D的API如何用WebGL实现(比较区别)
- 2webGL和Canvas之间的关系? - SegmentFault 思否
我是刚刚开始接触3D,在网上看了一些文章,比较疑惑webGL与Canvas的关系,不知道我这样理解对不对:canvas的3D渲染是基于webGL的,当使用canvas的3D ...
- 3使用WebGL 繪圖的基本步驟 - 3D 網站開發入門筆記
WebGL(Web Graphics Library 的縮寫)用於瀏覽器中呈現3D 影像的技術標準, ... WebGL 可以把JavaScript 和OpenGL ES 2.0 結合在一起,為...
- 4Canvas、 SVG 和WebGl三者之间的区别_加油小吃货的博客
概要:Canvas 位图,是需要自己画点的白板; SVG 矢量图,是给数据就可以绘制点、线、图形的,基于XML 的标记语言; WebGL 3D位图,是基于Canvas 的3D ...
- 5準備WebGL Canvas - OpenHome.cc
透過WebGL,瀏覽器可以將大部份的繪圖渲染運算,送進專司影像運算的圖形處理器(Graphics Processing Unit,GPU),從而增加瀏覽器上的繪圖效率,若對HTML5 Canva...