当前课程知识点:移动图形概论 > 第一章 课程简介 > 1.1 课程基本情况介绍 > 课程基本情况介绍
各位同学 大家好
我是来自北京大学的杨延军
我主要从事嵌入式系统和通信方面的研究
今天这门课
是嵌入式系统里面比较重要的一个应用方向
嵌入式图形学
课程的名字叫移动图形概论
本节的主要内容是对课程进行一个简单的介绍
然后介绍一下移动图形技术
这门课的题目虽然叫移动图形概论
但是关于计算机图形学的相关知识是一点也不能少
所以我们首先会介绍一下图形学的相关知识
然后由于我们这个课主要会使用到
Imagination公司的PowerVR框架
所以也会介绍这个框架的基本用法
OpenGLES 是嵌入式图形编程主要的编程接口
所以本课程还会介绍 OpenGL ES 编程的基本方法
在OpenGL的编程中
我们还会着重介绍着色器这个重要的一个概念
这里先不详细展开
后面会对它的编程的语法
和主要的编程过程进行介绍
本门课程面向同学需要有一定的C++的编程基础
不过我并不要求你掌握很复杂的C++细节知识
只要了解基本的继承和多态的概念就可以了
另外本课程需要了解基本的线性代数知识
主要包含矩阵的基本运算
如矩阵加法 乘法 矩阵的转置和逆等
最后比较重要的
进行图形学相关的编程或者是设计的时候
要有一个比较好的空间想象能力
因为很多时候呢都是跟三维物体和三维坐标打交道
这个时候你如果没有很好的空间想象力
就必须借助纸笔或者辅助其他计算机工具来加强对这方面的理解
经过本课程的学习
希望同学们可以达到如下几个基本目标
首先就是本课程可以作为图形编程的一个入门课
大家会学习openGL ES相关的编程知识
可以编写简单的图形应用程序
其次大家可以通过这门课了解 PowerVR的软件基本架构
它包含了sdk和相关工具的基本使用方法
在学习了相关知识之后
潜在的应用方向也很多
比如我们经常用到的手机用户界面的设计
很多都用到了图形学的知识
利用了opengles的相关技术
另外游戏程序设计
也只有利用相关的技术
游戏画面才能更真实 更加吸引人
还有其他一些应用软件也可能会用到这样的技术
比如说医疗上面用到核磁共振和ct等软件
他们在展示三维人体结构的时候也都会用到相关的技术
再有就是数据可视化
在我们这个大数据的时代需要把复杂的数据展现给用户
经常也会用到一些比较酷炫的3D显示技术
最后说一下
我们这门课呢叫做移动图形概论
所谓的移动图形学就是Mobile graphics
这里的移动
主要讲的并不是说这个设备位置会变化
而对应的是嵌入式系统的概念
这也是我前面说这么课和嵌入式系统有一定关系的原因
特别的我们所使用的opengLES
里面的es 代表的就是embedded system
也就是嵌入式系统
嵌入式系统是一个非常广泛的概念
可以说
除了pc这样的桌面系统
其他的处理器系统都可以叫做嵌入式系统
因为这样的系统一般的都是面向特定的应用
由于成本和应用本身的限制
嵌入式系统的往往会在各个方面受到限制
比如说 我们装在主机箱里面的硬盘控制器
比如说 我们装在主机箱里面的硬盘控制器
是一个嵌入式系统
他的尺寸就受限于硬盘本身的尺寸
另外 嵌入式系统的运算能力也会有些限制
这个主要是由于成本来决定的
设备厂商不可能为了一个很简单应用
使用一个能力非常强的处理器
接下来
嵌入式设备对功耗一般也有限制
特别是对于手持设备
他们必须保证在电池供电的条件下
能工作更长的时间
图形应用往往是一个非常耗能的一个应用方向
所以这里对功耗也是需要特别注意的
虽然我们这门课强调移动
但讲授的内容并不完全限于移动
课程内容的很多部分都可以应用于桌面的系统
我们的代码可以在桌面系统中运行
相应的一些算法和知识
也可同样的应用到标准的opengl里
接下来我们介绍一下移动图形技术的一个发展简史
移动图形技术是在桌面图形技术发展的基础上进化而来
他在发展的初期
主要就是专门面向移动设备来开发图形应用
主要应用的目标就是在手持设备特别是手机上进行使用
我们耳熟能详的很多图形学方面的应用
都是在手机上可以看到的
比如
在这里我们可以看到比较早期的诺基亚手机上的一个图形应用
这是97年诺基亚6110上面的贪食蛇游戏
像这样的游戏
如果大家学过单片机的相关的一些课程就会了解
它并不需要复杂的计算
只要用处理器直接控制一个液晶显示面板就可以实现
所以这时候的图形应用
基本上全是在中央处理单元也就是CPU上面完成的
即使到了2003年
诺基亚推出了一个叫做N-Gage的游戏设备
里边可以实现很多场景非常复杂的3D游戏
但是图形相关的处理依然全是在CPU上面来完成
这就要求它的CPU的处理能力比较强
对于图像中每个像素点的显示完全由CPU计算生成
右面显示的图片是2004年发布的射击类游戏
叫做使命召唤
真正现代化的图形技术
应用在游戏里面是在2009年的iPhone上
虽然在2007年发布的初代iPhone就包含了专用的GPU
但它的功能还比较弱
只有固定功能管线
直到2009年iPhone3GS发布
它是最早拥有专用可编程图形处理单元的嵌入式架构之一
图中展示的是一个叫做nova的3D游戏
它可以运行在iPhone3gs和IPAD上面
他有一个非常优秀的一个3D引擎
可以获得比较好的一个图形展示效果
而他所使用的gpu 就是PowerVR的sGX系列
支持的软件标程标准是OpenGL ES 2.0
时间到了五年以后
图形技术的发展就已经进步很大了
我们看到这个图呢
是《无尽之剑3》的一个游戏宣传视频的截图
他运行在2014年发布的iPhone5s上面
所使用的gpu是PowerVR的Rogue系列
支持的软件标准是OpenGLes的3.0
《无尽之剑3》
针对iPhone 5S上的OpenGL ES 3.0进行了优化
视觉效果有了长足进步
到2014年以后
移动gpu的架构的发展很快
开始使用的上了高端台式机中的GPU架构
在一些移动gpu架构中出现了
通用计算图形处理单元
也就是gpgpu的功能
它可以将GPU用于非图形工作的通用计算
这部分功能已经被纳入openGLES 3.1的标准中
一些比较高级的图形渲染技术也开始在移动gpu中出现
包括光线追踪技术和物理渲染技术等
gpu技术的发展总会带来更多的存储器的带宽需求
更大的帧缓冲区和更高效的图形管线
以及曲面细分等全新的硬件技术
接下来给大家看两个图
第一个是用PowerVR的光线追踪技术渲染的图像
光线追踪是通过
模拟光线在场景中的运行来探测某个像素点的最终颜色
这需要处理器有比较强的计算能力
最初只在桌面系统中采用
可以看到这副图里面各个物体的照明和阴影
还有垃圾桶的反射效果都非常的真实
这张图是基于物理渲染技术产生的图像
这种技术会考虑物体表面的材质等特性
提高画面的真实性
可以看到图中环境光的照明
还有物体本身自发光的效果
好 这节课就讲到这里
谢谢大家
-1.1 课程基本情况介绍
--课程基本情况介绍
-1.2 GPU 相关基础知识
-1.3 OpenGL ES 技术发展历史
-1.4 PowerVR SDK 安装和使用
-第一章测试
-2.1 OpenGL ES 基本概念
-2.2 编写第一个图形程序
-2.3 主要 API 介绍
-第二章测试
-3.1 矢量和矩阵知识基础
-3.2 旋转与位移变换
--旋转与位移变换
-3.3 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 的实现
-第七章测试
-8.1 Vulkan 介绍
-8.2 SDK 中的实用工具介绍
-综合测试


