1002--OpenGL专业名词解析及渲染执行流程图

一.图形API

1.有什么

  • OpenGL(Open Graphics Library)是⼀个跨编程语言、跨平台的编程图形程序接口,针对PC端(MAC,Windows)图形图像处理。

扩展OpenGL 和OpenCV/face++(商业识别API)
OpenGL. 渲染(显示->位图->屏幕)
OpenCV. 识别(⼈脸识别/身份识别/物体->OpenCV) -> 与⼈⼯智能结合;

  • OpenGL ES (OpenGL for Embedded Systems)是 OpenGL三维图形 API 的⼦集,去除了许多不必要和性能较低的API接口,针对移动端(iOS, Android)图形图像处理。

  • DirectX 是Windows上⼀个多媒体处理框架。 按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和⽹络部分。

  • Metal : Apple为游戏开发者推出的新的平台技术Metal,该技术能够为 3D 图像提高 10 倍的渲染性能。Metal是Apple为了解决3D渲染而推出的框架。

OpenGL ES让GPU做一下图形图像的处理
Metal让GPU 做一下编码解码,识别,⼤量并发运算
CoreAnimation ,CoreImage ,CoreGraphics都是基于OpenGL ES/Metal完成GPU的驱动

2.作用-->渲染问题

  • 系统针对按钮.图⽚,视图,图层渲染问题
  • 游戏引擎->⼈物/场景渲染(图形API)
  • 视频播放框架->ijkplayer,kxmovie 视频解码->渲染(图形API)
  • 核⼼动画->动画操作 (旋转,缩放,移动, 图层特效)
  • 视频/图⽚->特效(图形API)
  • 离屏渲染

二.OpenGL专业名词解析

1. OpenGL上下⽂(context)

记录一个功能的状态:打开,运行,关闭

2.OpenGL状态机

  • 状态机是理论上的⼀种机器.这个⾮常难以理解.所以我们把这个状态机这么理解.状态机描述了⼀个对象在其⽣命周期内所经历的各种状态,状态间的转变,发⽣转变的动因,条件及转变中所执⾏的活动。或者说,状态机是⼀种⾏为,说明对象在其⽣命周期中响应事件所经历的状态序列以及对那些状态事件的响应。因此具有以下特点:
  • 有记忆功能,能记住其当前的状态
  • 可以接收输⼊,根据输⼊的内容和⾃⼰的原先状态,修改⾃⼰当前状态,并且可以有对应输出
  • 当进⼊特殊状态(停机状态)的时候,变不再接收输⼊,停⽌⼯作;

3.渲染

将图形/图像数据转换成2D空间图像的操作叫做渲染(Rendering),即将图片/按钮/视频显示到屏幕上的过程

4.顶点数组

将顶点数据存储在内存中

顶点数据:图形顶点的信息(xyz)
OpenGL中只有点,线 ,三角形,如四边形是由2个三角形组成

5.顶点缓存区

将顶点数据存储在GPU显存中,为了更高效

6.位图(bitmap)

也称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。

7.管线(流水线)

是一个过程,如 绿豆->绿豆汤->磨具->绿豆糕的整个流程

8.固定管线(固定着⾊器)

对应于管线中的磨具,制作绿豆糕的时候,可以根据卖家提供的不同的模具,做成各种各样的绿豆糕

9.可编程管线

对应于管线中的磨具,制作绿豆糕的时候,可以自己做一些任意的模具(OpenGL ES->GLSL语法驱使CPU),做成自己想要形状的绿豆糕

10.着⾊器(shader)

  • 类似于一个API/方法/函数/代码段 -> GPU使用

常⻅的着⾊器主要有:

  • 顶点着⾊器(VertexShader)处理顶点相关代码

1.主要是确定位置
2.旋转,缩放,平移
3.3D图形数据->2D(投影换算),如:拍照(人->照片)

  • ⽚段/片元着⾊器(FragmentShader)/像素着⾊器(PixelShader)

处理一个一个的像素点,比如修改一个图片的饱和度,就将图片的所有像素点进行更改

  • ⼏何着⾊器(GeometryShader),
  • 曲⾯细分着⾊器(TessellationShader)

暂未支持

11.固定着⾊器(存储着⾊器)

调用系统提供的的API/方法/函数/代码段

12.⾃定义着⾊器

自定义基于GLSL语法进行编写的API/方法/函数/代码段

着色器渲染流程图,

转自:逻辑教育CC老师


着色器渲染流程.jpg

在OpenGL进⾏绘制的时候,⾸先由顶点着⾊器对传⼊的顶点数据进⾏运算。再通过图元装配,将顶点转换为图元。然后进⾏光栅化,将图元这种⽮量图形,转换为栅格化数据。最后,将栅格化数据传⼊⽚段着⾊器中进⾏运算。⽚段着⾊器会对栅格化数据中的每⼀个像素进⾏运算,并决定像素的颜⾊

13.光栅化(将上图第三步->第四部:映射屏幕上并使用像素点框起来)

1.确定图片在屏幕上的像素范围
2.把计算好的颜色(通过片元着⾊器)附着上去

14.纹理(纹理文件 .tga)

纹理可以理解为图⽚.⼤家在渲染图形时需要在其编码填充图⽚,为了使得场景更加逼真.⽽这⾥使⽤的图⽚,就是常说的纹理.但是在OpenGL,我们更加习惯叫纹理,⽽不是图⽚.
移动端图片显示是把压缩图片(png,jpeg)-> 位图来显示

15.混合

layer的几个图层叠加在一起,即颜色混合行为(有运算)

16.变换矩阵:

例如图形想发⽣平移,缩放,旋转变换.就需要使⽤变换矩阵(操作顶点).

投影矩阵:

⽤于将3D坐标转换为⼆维屏幕坐标,实际线条也将在⼆维坐标下进⾏绘制

17.交换缓存区

理解为日班和夜班交替,休息好了,我来上班你下班,保证工作

18.开启深度测试

在绘制时,打开深度测试; 则表示,如果在同一个区域的像素点上有2个图层颜色. 会比较谁更接近观察者. 如果有被覆盖部分,被覆盖部分就不会绘制,想要绘制就关闭深度测试

三.坐标系

  • 2D笛卡尔坐标系(x,y)
  • 3D笛卡尔坐标系(x,y,z)
  • 摄像机(观察者)坐标系:如拍照想把人拍摄大点,可以移动己方相机/对方,另外角度也可不同
  • 世界(物理)坐标系:物理本身的坐标系,类似于OC中的bounds
  • 视口:对应屏幕区域的范围,可以理解为窗口大小,自己设置

四.投影方式

  • 正投影(平行投影)1:1投影,大小不变,显示2D效果
  • 透视投影,符合有近大远小,显示3D效果

五.渲染流程图
渲染流程图.jpg

扩展
cpu:运算核心/控制中心/缓存,时间片切换(类似多线程),适合处理依赖性高的任务
gpu:绘图运算的微处理器,多计算单元,实现高并发,适合处理依赖性低的任务
cpu:媳妇生孩子(10个月)
gpu:找对象,找10个对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354