WebGL,OpenGL和OpenGL ES三者的关系_仓鼠的藏宝库
文章推薦指數: 80 %
OpenGL ES可以说是OpenGL为了满足嵌入式设备需求而开发一个特殊版本,是其一个子集;而WebGL,是为了网页渲染效果,将JavaScript和OpenGL ES 2.0结合 ...
WebGL,OpenGL和OpenGLES三者的关系
特快仓鼠
于 2020-08-2817:27:13 发布
5175
收藏
8
分类专栏:
opengl
文章标签:
opengl
webgl
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_23034515/article/details/108283747
版权
opengl
专栏收录该内容
2篇文章
1订阅
订阅专栏
一、OpenGLES简介
在上一章中,我们介绍了OpenGL,知道了它是用于计算机图形绘制的编程接口标准,支持不同平台上的图形绘制,在计算机上发挥了重要作用。
后来,随着手机等移动设备性能的快速提高,人们已经不满足于将移动设备的应用止于通讯应用、记事等传统平面应用。
而越来越注重移动设备功能的多样化、娱乐化,手机3D游戏、GPS导航系统等代表了未来移动设备发展的方向。
基于这种情况,Khronos组织于2003年7月发布了专门针对于嵌入式设备图形开发的标准OpenGLES(OpenGLforEmbeddedSystems)。
二、WebGL简介
WebGL,是一项用来在网页上绘制和渲染复杂三维图形(3D图形),并允许用户与之交互的技术。
随着个人计算机和浏览器的性能越来越强,我们能够在Web上创建越来越精美、越来越复杂的3D图形。
从传统意义上来说,为了显示三维图形,开发者需要使用C或C++语言,辅以专门的计算机图形库,如OpenGL或Direct3D,来开发一个独立的应用程序。
现在有了WebGL,我们只需要向已经熟悉的HTML和JS中添加一些额外的三维图形学的代码,就可以在网页上显示三维图形了。
WebGL是内嵌在浏览器中的,不必安装插件和库就可以直接使用它。
三、三者关系
OpenGLES可以说是OpenGL为了满足嵌入式设备需求而开发一个特殊版本,是其一个子集;而WebGL,是为了网页渲染效果,将JavaScript和OpenGLES2.0结合在一起,通过增加OpenGLES2.0的一个JavaScript绑定得到。
基本关系如下图所示:
在实际应用过程中,前端的WebGL是通过JS语句,操作本地的OpenGL的部分接口,对于移动设备这是操作OpenGLES的接口,来实现页面的图形的渲染,WebGL只是绑定外面接口的一层,内部的一些核心内容,如着色器,材质,灯光等都是需要借助GLSLES语法来操作的。
三者的版本关系如下图所示:
四、三者区别
WebGL与其他OpenGL最大差别就是其可以通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件支持。
OpenGLES和OpenGL最大差别就是两者应用场景不一样,一个是计算机,一个是移动或嵌入式设备。
这种差别体现在两个方面:
窗口系统不一样。
OpenGLES是一个平台中立的图形库,在它能够工作之前,需要于一个实际的窗口系统关联起来,这一点OpenGL也是一样的。
但是OpenGL时代在不同平台上有不同的机制一关联窗口系统,在Windows上是wgl,在X-Window上市xgl,在AppleOS上是agl等。
而嵌入式市场的平台种类不计其数,单是学习各家手机操作系统的接口就是很大负担了,更不用说致力于支持各种尺寸平台的软件开发者,所以OpenGLES提供了WindowSurface的抽象,使得移植工作基本可以局限在重新实现一下建立窗口的过程。
这个窗口工具是EGL,全称:embeddedGraphicInterface,是OpenGLES和底层Native平台视窗系统之间的接口。
功能规模不一样。
嵌入式设备和移动设备追求的是高性能,因此OpenGLES相对OpenGL删减了一切低效能的操作方式,有高性能的决不留低效能的,即只求效能不求兼容性(和苹果的作风类似)。
典型的有:
没有double型数据类型,但加入了高性能的定点小数数据类型。
没有glBegin/glEnd/glVertex,只能用glDrawArrays/glDraw...............没有实时将非压缩图片数据转成压缩贴图的功能,程序必须直接提供压缩好的贴图
特快仓鼠
关注
关注
4
点赞
踩
0
评论
8
收藏
打赏
扫一扫,分享内容
点击复制链接
专栏目录
webgl与opengl的区别和联系
工程仿真及软件工程及超级计算
08-03
105
WebGL和OpenGL的区别为:性质不同、插件支持不同、用途不同。
WebGL
WebGL的缩写为Web图形库。
它主要用于渲染二维图形和交互式三维图形。
它是可以与HTML5一起使用的JavascriptAPI。
它支持跨平台,并且仅以英语提供。
WebGL程序由用JavaScript编写的控制代码组成
1.WebGL是基于OpenGLES2.0的JavascriptAPI,而不是纯OpenGL(ES代表“嵌入式系统”)。
2.WebGL通过HTML5的Canvas来和DOM打交道。
openGL与openGLES的区别
痞子龙3D编程
01-29
9297
OpenGL与OpenGL-ES简介
OpenGL
是由SGI公司开发的一套3D图形软件接口标准,由于具有体系结构简单合理、使用方便、与操作平台无关等优点,OpenGL迅速成为一种3D图形接口的工业标准,并陆续在各种平台上得以实现。
作为一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。
由于
参与评论
您还未登录,请先
登录
后发表或查看评论
WebGL系列(三)OpenGLES着色器语言(GLSLES)
qq_33216658的博客
03-31
823
GLSLES是强类型语言,大小写敏感,它从main()函数开始执行,必须有且只有一个main()函数,且不接收任何参数。
GLSLES如果函数有返回值,必须明确指定返回值类型,没有返回值,需要用void来明确表示没有返回值。
数据类型
数值类型:整数int和浮点数float
布尔值类型:true和false
变量
a-z,A-Z,0-9和下划线_
首字母不能是数字
不能以gl_...
【前端可视化】OpenGL/WebGL入门和实践
奇舞周刊
10-22
1万+
作者:窦金兰—字节跳动IES前端工程师希望通过这篇文章,大家能够对OpenGL/WebGL有一个基础的认识~~OpenGL定义OpenGL是一套规范,...
OpenGLESObj3D示例模型
08-14
OpenGLESObj3D示例模型,在网上搜索和下载OBJ模型非常麻烦,找了几个,干脆打个包给大家分享一下。
可以结合OBJ2OpenGL在iPhone上使用OpenGLEs尝试加载一下试试。
WebGL和OpenGL的联系和区别
一碗老面的博客
01-04
4526
WebGL和OpenGL的区别为:性质不同、插件支持不同、用途不同。
WebGL
WebGL的缩写为Web图形库。
它主要用于渲染二维图形和交互式三维图形。
它是可以与HTML5一起使用的JavascriptAPI。
它支持跨平台,并且仅以英语提供。
WebGL程序由用JavaScript编写的控制代码组成
1.WebGL是基于OpenGLES2.0的JavascriptAPI,而不是纯OpenGL(ES代表“嵌入式系统”)。
2.WebGL通过HTML5的Canvas来和DOM
有关于OpenGL、OpenGLES、WebGL的小结
smsmn的专栏
09-28
8650
一. OpenGL简介
OpenGL(全写OpenGraphicsLibrary)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图西象(二维的亦可)。
OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
OpenGL+WebGL——绘制三角形
大太阳
08-30
1032
编写C++代码main.cpp实现一个三角形的绘制,该程序中包括创建顶点缓冲区glGenBuffers();创建并编译顶点着色器与片段着色器glCreateShader();glCompileShader()和三角形绘制glDrawArrays()
#include
显然,WebGL技术标准免去了开发网页专用渲染插件...
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
特快仓鼠
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
17
原创
11万+
周排名
179万+
总排名
5万+
访问
等级
682
积分
15
粉丝
34
获赞
10
评论
125
收藏
私信
关注
热门文章
WebClient,HttpClient,HttpWebRequest的比较
9717
Ubuntuserver网络配置
6918
Centos系统安装踩坑
5520
WebGL,OpenGL和OpenGLES三者的关系
5165
ArcEngine之ToolbarControl控件
3321
分类专栏
SUMO
1篇
opengl
2篇
系统
3篇
GIS
8篇
数据库
2篇
随笔
最新评论
Qgispython开发简单入门
qq_21611973:
博主你好,我在pycharm里设置好了环境后fromqgis.coreimport*没问题,但是引入processing包就提示Nomodulenamed'processing',主要是想调用procesing下面的方法处理数据。
但是同样的代码在anaconda里配置好QGIS环境用CMD控制台运行就可以,在pycharm里把环境改成anconda的环境还是不行。
基于pycharm的QGIS-API调用方法
起飞的木木:
此文确实妙
Centos系统安装踩坑
小帅子帅小子:
看了大半天貌似没有解决啊,最后怎么搞的?
基于pycharm的QGIS-API调用方法
Tisfy:
我曾经惊讶于李杜的诗才,但才发现此文甚妙!
Qgis+python开发环境配置和简单教程
Flora_McAvoy:
非常感谢!
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
PYQGIS中关于shapefile文件的解除占用和删除问题
基于openstreetmap数据的SUMO路网生成路线
QGIS的openstreetmap数据加载
2021年3篇
2020年6篇
2019年9篇
目录
目录
分类专栏
SUMO
1篇
opengl
2篇
系统
3篇
GIS
8篇
数据库
2篇
随笔
打赏作者
特快仓鼠
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1WebGL vs OpenGL | Know The 6 Most Useful Differences
The WebGL programs consist of a control code that is written in JavaScript. OpenGL is called as O...
- 2【前端視覺化】 OpenGL / WebGL 入門和實踐_code祕密花園
OpenGL ES 是OpenGL 的子集,專門針對手機/PDA(掌上電腦,如: 條形掃碼器,POS機等)/遊戲主機等嵌入式裝置設計的。OpenGL ES 主要直接提供C api,各自平臺 ...
- 3WebGL Overview - The Khronos Group Inc
WebGL is a cross-platform, royalty-free web standard for a low-level 3D graphics API based on Ope...
- 4WebGL 和OpenGL ES 有什么区别? - 知乎
其实我对OpenGL ES没有接触。所以只能粗浅作答。 OpenGL ES最初是作为OpenGL的一个subset支持移动设备和嵌入式设备开发。就我猜想,可能最初两者的兼容性和可移植性是 ...
- 5Differences between WebGL and OpenGL - Stack Overflow
WebGL is a cross-platform, royalty-free web standard for a low-level 3D graphics API based on Ope...