当前课程知识点:移动图形概论 >  第一章 课程简介 >  1.3 OpenGL ES 技术发展历史 >  OpenGL ES 技术发展历史

返回《移动图形概论》慕课在线视频课程列表

OpenGL ES 技术发展历史在线视频

下一节:PowerVR SDK 安装和使用

返回《移动图形概论》慕课在线视频列表

OpenGL ES 技术发展历史课程教案、知识点、字幕

各位同学 大家好

今天主要介绍一下opengLES技术的发展历史

本节的主要内容包括图形技术的发展历史

还有特别的介绍opengLES发展过程

首先

介绍计算机图形技术不可避免的要提到opengl

图形相关的应用一直是

计算机发展过程中的一个重要的组成部分

在上个世纪90年代三维图形开始迅速地发展

这方面的需求也逐渐越来越多

1992年sgi公司发布了opengl 1点零版本

同年成立了opengl arb

也就是opengl架构评审委员会

在arb的支持下

从1995年到2003年

openGL的版本从1.1发展到了1.5

成为了业界事实上的技术标准

2006年

ARB将标准的控制权转交给khronos工作组

由他维护标准的发行 直到今天

同期

另外一个不得不提的3D标准就是directx

在Opengl发布以后

微软立刻发布了DirectX1点零

其中包括了Direct 3D来对三维图形进行支持

但由于支持的硬件平台比较少

市场反应比较平淡

没有引起很大的市场关注

到了1997年

微软发布DirectX 5.0

相关技术才逐渐走向成熟

开始而2002年的DirectX9点零开始

支持高级编程语言的可编程管线

从技术上来讲已经领先于OpenGL

不过

直接把DirectX

和opengl比较有可能并不是特别的公平

因为DirectX不只是一个3D的图形库

还包括声音 用户输入 网络

等等跟游戏开发相关的解决方案

因此很多在WINDOWS平台发行的游戏

很多都是已支持directX为主

在WINDOWS系统中的生态和开发工具等

各方面的支持也都具有很明显的优势

接下来要介绍的就是我们这门课的重点 opengles

它的出现主要应对移动3D图形硬件的需求

与DirectX不同

它是一种完全跨平台的软件接口

可以在多种操作系统和不同的硬件平台上获得支持

这里列出了很多支持openGLes的硬件厂商

包括Imagination ARM Intel 高通 NVIDIA

等多家处理器和GPU厂商

还有谷歌这样的软件厂商

opengLES同样由ARb

和后来的Khronos工作组来维护

2002年发布了1.0也就是第一个开放标准

它拥有固定的功能管线

包含顶点数组

但删除了许多openGL操作和图元渲染功能

目的时创建一个轻量级的API库

同时保持和openGL的兼容

并且面向特殊的嵌入式应用

它的固定功能管线

虽然在某种程度上可定制

但对于开发人员来说还是不够灵活

不能创造出复杂的图形效果

而顶点数组是保存在主存储器中的数据结构

包含了发送给gpu的每一帧的几何图像信息

这些技术将在后面的课程中详细进行介绍

2003年

OpenGL ES1.1版本发布

它增加了1.0版本中缺少的部分功能

包括顶点缓冲区对象自动贴图和多重纹理

顶点缓冲区对象是对顶点数组的一种升级

他通常保存在gpu存储器中

仅包含一次发送到gpu的几何信息

可以发送一次而多次由GPU使用

这样就减少了由gpu不断访问

顶点数组造成的数据瓶颈

而自动贴图生成

是对一系列不同分辨率纹理图像的处理

提高了图像在不同缩放级别的显示效果

而多重纹理则允许将多个纹理图像组合在同一多边形上

这对于一些实现比较高级的图像光影效果是必不可少的

2003年出现的m3g

也就是移动3D图形库

在当时获得了非常广泛的支持

当时几乎全部的智能手机都支持这一标准

而它实际上是对openLBS的java封装

如果移动设备没有相应的硬件支持

m3g还可以在软件上对硬件进行模拟

右图是专为m3g而开发的都市赛车游戏

历史上

多年来人们一直不清楚是M3G还是OpenGL ES

会成为移动设备上的主要API

有人认为

是iPhone在2008年选择支持OpenGL ES而结束了这场纷争

2005年opengLES发布了2.0版本

这个版本开始支持可编程的图形管线

开发人员可以使用着色编程语言编写顶点和片段着色器

由于架构的改变

opengLES2点零不再支持固定功能管线

顶点着色器支持在gpu上直接执行代码

来实现顶点属性的变换

而片段着色器支持在gpu上执行代码来计算图元占用的各像素的颜色

关于着色器的相关的技术

在后续的讲座中将有详细的介绍WebGL

可以看成时openGL ES在互联网领域渗透的一个产品

2011年推出的WebGL

是基于openGLes2点零的3D图形API

它基于JavaScript实现

可以在html5的画布中使用

html5画布允许3D图形在兼容的web浏览器中运行

WebGL同样使用着色器编程进行图像处理

因此也不支持早期opengl的固定功能管线

这个游戏截图是一款充满未来风格的赛车游戏

叫做HexGL

玩家可以在使用webgl html5和JavaScript

构建的Web浏览器中直接操作游戏

这大大提高了网页游戏的用户体验

也扩展了openGLes的应用范围

2012年opengLes发布了3.0版本

它也支持可编程的3D图形管线

不支持openGLes1点零的固定功能管线

但完全兼容OpenGLes2点零

一些新增的技术包括多重渲染目标和几何体实例化

并且完全支持32位浮点和整数运算

这里面提到的渲染目标是一个可渲染的缓冲区

例如纹理

多重渲染目标支持的延迟着色技术

是一项在深度测试完成后

为可见图形窗口中的可见对象计算照明的技术

而几何体实例化允许gpu多次绘制相同的几何体

而只需将几何体提交到渲染管线一次

2014年 OpenGLES 推出了3.1版本

它增加了一些额外的功能

其中包括计算着色器

计算着色器支持在gpu上直接执行代码

从而可以将gpu当作通用处理器 而不是图形处理器来使用

因此

它允许软件将gpu的专用计算能力用于一般任务

这就可以利用gpu的计算能力

进一步减轻一些复杂计算对CPU的压力

Vulkan是2015年推出的一款新的3D图形API

他同样由 Khronos工作组开发

保持协议的开放和跨平台的特性

它主要对图形硬件的访问进行了优化

包括更底层的对设备的访问和控制

与Vulkan相比

OpenGLES具有单个的上下文

并且只有一个全局的状态机

这意味着它只能按顺序执行操作

是一种单核的设计

实现多线程编程比较困难

而Vulkan

允许将所有的状态发送到命令缓冲区

并且他以对象为基础 没有全局状态

非常有利于多线程编程的设计

由于 Vulkan 可对硬件底层进行访问

可以充分的利用现代的GPU架构优势

因此它比opengLES更高效

但同样的他在学习和使用上都比openLES要复杂

在这里我可以举个例子

我们后面要介绍的

最简单的opengoes的绘制图形代码只有60多行

而最简单的能绘制图形的Vulkan代码要接近1000行

因此Vulkan更适合熟悉OpenGL的用户学习使用

好 今天的课程就到这里

谢谢大家

移动图形概论课程列表:

第一章 课程简介

-1.1 课程基本情况介绍

--课程基本情况介绍

-1.2 GPU 相关基础知识

--GPU 相关基础知识

-1.3 OpenGL ES 技术发展历史

--OpenGL ES 技术发展历史

-1.4 PowerVR SDK 安装和使用

--PowerVR SDK 安装和使用

-第一章测试

第二章 图形编程入门

-2.1 OpenGL ES 基本概念

--OpenGL ES 基本概念

-2.2 编写第一个图形程序

--编写第一个图形程序

-2.3 主要 API 介绍

--主要 API 介绍

-第二章测试

第三章 OpenGL ES 变换

-3.1 矢量和矩阵知识基础

--矢量和矩阵知识基础

-3.2 旋转与位移变换

--旋转与位移变换

-3.3 OpenGL ES 变换基础

--OpenGL ES 变换基础

-第三章测试

第四章 OpenGL ES 着色器

-4.1 着色器编程语言介绍

--着色器编程语言语法

--着色器编程语言特殊语法

-4.2 着色器编程实例

--着色器编程实例

-第四章测试

第五章 颜色与纹理

-5.1 颜色的基本概念

--颜色的基本概念

-5.2 纹理素材的使用

--纹理素材的使用

-5.3 立方体纹理

--立方体纹理

-第五章测试

第六章 光源与光照

-6.1 光照的基本概念

--光照的基本概念

-6.2 光源模型

--光源模型

-6.3 使用着色器渲染颜色

--使用着色器渲染颜色

-6.4 反射与折射

--反射与折射

-第六章测试

第七章 基于物理的渲染

-7.1 基于物理渲染的基本概念

--基于物理渲染的基本概念

-7.2 基于图像的照明

--基于图像的照明

-7.3 PBR 的实现

--PBR 的实现

-第七章测试

第八章 PowerVR 工具简介

-8.1 Vulkan 介绍

--Vulkan 介绍

-8.2 SDK 中的实用工具介绍

--SDK 中的实用工具介绍

-综合测试

OpenGL ES 技术发展历史笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。