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

2020-07-02  本文已影响0人  那抹浮沉

一.图形API

1.有什么

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

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

2.作用-->渲染问题

二.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)

常⻅的着⾊器主要有:

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

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

暂未支持

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

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

12.⾃定义着⾊器

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

着色器渲染流程图,

转自:逻辑教育CC老师


着色器渲染流程.jpg

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

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

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

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

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

15.混合

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

16.变换矩阵:

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

投影矩阵:

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

17.交换缓存区

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

18.开启深度测试

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

三.坐标系

四.投影方式

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

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

上一篇下一篇

猜你喜欢

热点阅读