视觉 - (1)OpenGL 初识

前言:我做ios和android开发也很多年了,之前也用OpenGL做过一些效果,比如阅读器的翻页效果。但是一直没有系统的学习过这方面的知识,只是根据项目需求,查找一些文档或者下载一些demo进行修改。虽然当时效果是根据demo改出来了,但是很多原理性的知识还是比较欠缺的。所以现在开始系统的学习一下视觉方面的知识。

一、首先先了解一下有哪些图片API框架:

1.OpenGL (主要用于PC端)
2.OpenGL ES (主要用于嵌入式设备,ios、android 等)
3.DirectX (主要用于Windows)
4.Metal (苹果推出的框架,未来苹果将会弃用OpenGL)

二、区别一下OpenGL 、 OpenCV 的区别:

OpenGL主要是图形渲染的Api,OpenCV主要是用来做识别的,比如人脸识别,认证识别,两者是完全不同的领域,但是可以结合使用。

三、目前IOS底层是用什么渲染的呢:

2018之前用的是OpenGL ES, 之后用的是Metal。苹果迁移到Metal的原因是:“OpenGL只能做一些图形和图像的处理,并不能调度GPU做一些并发运算,编解码等,而Metal提供了这些入口”。但是OpenGL ES还是很有必要学习,包括我们现在做的直播项目,视频渲染底层仍然用到OpenGL ES。

四、图形图像API的专有名词:

1、上下文(context)
上下文相当于一个非常庞大的状态机,保存了OpenGL中的各种状态,记录了一些功能。我们做ios的时候用到CoreGraphics绘图的时候,会经常用到context,同时也类似于android里面的常用的context(比如Activity底层就继承一个抽象的Context类)。

2、渲染
将图片、视频等绘制到屏幕的过程。

3、顶点数组 & 顶点缓冲区
顶点就是我们在绘制图形时,它顶点位置的数据。类似在搭建了图形的框架。
顶点数组,就是把顶点存储到内存中。但是GPU在调度的时候,去读内存中的顶点信息会比较慢。而顶点缓冲区是把顶点数据存在GPU显存中,读取效率很快。

4、位图 (也叫纹理)
我们常用的png/jpg 是压缩图片,不能直接渲染在屏幕上,需要解压成位图,才能绘制到屏幕上。
比如 分辨率为100x100的位图,像素点就为 100x100=10000个像素点,每一个像素点都通过RGBA相应的存储。所以这张100x100的位图所占的内存为100x100x4 = 40000字节。这样看来一张位图很大,所有一般我们都用png/jpg等格式传输。

5、管线 & 固定管线 & 可编程管线
管线相当于一条流水线的加工过程。固定管线就是对应流水线中非常多的固定的模具(类似ios开发中,只能使用固定的api)。可编程管线就是在制造的过程中,可以自定义编程模具(类似ios开发中,可以自定义api)。

6、着色器 & 固定着色器(存储着色器)
着色器就相当于函数和方法(代码段),函数和方法是调度CPU工作的。着色器就是调度GPU工作的。
固定着色器(存储着色器)就是ios里面苹果提供的Api,只能调用,不能改写。

7、自定义着色器 (顶点着色器、片元着色器、几何着色器、曲面着色器)
就是自己基于GLSL语法来进行编写的代码段。
在ios里面目前只有 顶点着色器、片元着色器可以自定义。

8、顶点着色器
主要有3个功能(1)确定位置 (2)缩放/平移/旋转位置换算 (3)3D-2D投影换算

9、片元(像素)着色器
用来处理一个一个像素点,加入有100x100个像素点,就会执行10000次。因为GPU是并行运算,所以不会很慢。比如饱和度、模糊效果、滤镜等都是通过片元着色器完成的。

10、GLSL
OpenGL语言

11、光栅化
其实就是执行了2个过程(1)确定图形的像素范围 (2)把颜色附着上去。

12、混合
颜色混合行为,两种颜色叠加在一起的时候会进行混合运算。

13、变换矩阵 & 投影矩阵
变换矩阵就是图形发生平移、缩放、旋转变化。
投影矩阵就是将3D坐标转换为二维屏幕坐标。

14、OpenGL投影方式 (camera 观察者视角)
(1) 透视投影 (远小近大的效果,主要显示3D效果) (2)正投影 (主要显示2D效果)

15、坐标系
(1)2d坐标系 (2)3d坐标系 (3)摄像机(观察者)坐标系 (4)物体坐标系 (物体本身的坐标系)等等。更多坐标系以及坐标系转化,以后的文章中我会详细说明。

五、着色器渲染流程:
大致流程:顶点数据 -> 顶点着色器 -> 细分着色器 -> 几何着色器 -> 图元设置 -> 剪切 -> 光栅化 ->片元着色器 -> 效果

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