OpenGL专业名词解析

图形API了解

在我们进行图形化开发的时候经常会使用图形API进行开发,首先我们对市面上的图形API进行一些简单的介绍。

  • OpenGL全称为Open Graphics Library,是⼀个跨编程语⾔、跨平台的编程图形程序接⼝,它将计算机的资源抽象称为⼀个个OpenGL的对象,对这些资源的操作2抽象为⼀个个的OpenGL指令。
  • OpenGL ES全称为OpenGL for Embedded Systems,是 OpenGL 三维图形 API 的⼦集,针对⼿机、PDA和游戏主机等嵌⼊式设备⽽设计,去除了许多不必要和性能较低的API接⼝。
  • DirectX是由很多API组成的,DirectX并不是⼀个单纯的图形API. 最重要的是DirectX是属于Windows上⼀个多媒体处理框架.并不⽀持Windows以外的平台,所以不是跨平台框架. 按照性质分类,可以分为四⼤部分,显示部分、声⾳部分、输⼊部分和⽹络部分。
  • Metal,Apple为游戏开发者推出了新的平台技术 Metal,该技术能够为 3D 图像提⾼ 10 倍的渲染性能.Metal 是Apple为了解决3D渲染⽽推出的框架。
image.jpeg
  • TIPS:
    OpenGL ES是OpenGL的子集,所以OpenGL ES相对OpenGL删减了一切低效能的操作方式,有高性能的决不留低效能的,即只求效能不求兼容性(和苹果的作风类似)。

    在 MacOS 10.14 的文档中,苹果表示使用 OpenGL 和 OpenCL 构建的应用还可以继续在 macOS 10.14 中运行(但是即使 macOS 支持 OpenGL ,其内置版本依然是 8 年前发布的 OpenGL 3.3 ,而不是去年发布的 4.6)。不过苹果表示,这些“遗留技术”并不推荐使用。所以,所有使用 OpenGL 的游戏和应用建议转向 Metal ;同样,使用 OpenCL 进行计算任务的应用也建议采用 Metal 和 Metal Performance Shaders 。很明显,苹果此举是想要大力推广 Metal 图形技术,来替换掉“古老”的 OpenGL 接口和 OpenCL 接口。

image.jpg

图形API用处

  • 游戏开发中的游戏场景/人物渲染
  • 音视频开发中,对于视频解码后的渲染
  • 地图开发
  • 动画绘制
  • 滤镜

OpenGL专业名词解析

  • 上下文(Context) 可以理解为状态机。OpenGL本身就是一个巨大状态机。而状态机顾名思义就是用来保存当前程序的状态,在程序中初始化一次后就不需要再次初始化,下次调用的时候直接获取就可以。
      由于OpenGL上下⽂是⼀个巨⼤大的状态机,切换上下文往往会产生较⼤的开销,但是不同的绘制模块,可能需要使⽤完全独立的状态管理。因此,可以在应⽤程序中分别创建多个不同的上下文,在不同线程中使⽤不同的上下文,上下⽂之间共享纹理、缓冲区等资源。这样的方案,会⽐比反复切换上下⽂,或者⼤量修改渲染状态,更加合理高效。
      注意:在每次创建新的上下文之前,需要清除缓存,以免以前的状态影响新创建的上下文

  • 渲染(Rendering)将图形/图像数据转换成2D空间图像操作叫做渲染。通俗的讲,就是将图片、视频等绘制到屏幕的过程

  • 顶点数组( VertexArray )和顶点缓冲区(VertexBuffer)要弄清顶点数组,首页要知道顶点数据,在OpenGL ES中,有3种类型的图元:点、线、三⻆形。例如,一个三角形,它的三个顶点就称之为顶点数据顶点数据就是描述一个图形顶点坐标的数据。
      顶点数组( VertexArray )和顶点缓冲区(VertexBuffer)就是保存这些数据的地方。顶点数组是将顶点数据保存在内存中;为了提高性能,提前分配⼀块显存,提前分配⼀块显存,将顶点数据预先传⼊到显存当中。而这部分显存则被称为 顶点缓冲区

  • 管线类似于一条流水线,程序按规划好的流程进行执行,而这个流程就被称为管线

  • 固定管线就是封装好的管线,只能对参数进行修改,内部程序无法修改

  • 着色器(Shader)通俗来说就是一个方法或者一个函数,只不过是供GPU调用。OpenGL在处理shader时,和其他编译器⼀样。通过编译、链接等步骤,⽣
    成了着⾊器程序(glProgram)。常⻅的着⾊器主要有顶点着⾊器VertexShader,⽚段着⾊器(FragmentShader)/像素着⾊器(PixelShader),⼏何着⾊器(GeometryShader),曲⾯细分着⾊器(TessellationShader)

    • 固定着色器跟固定管线一样,由OPenGL提供,程序员只能修改参数。

    • 自定义着色器跟固定管线相反,可以由程序员自己用GLSL语言来编写代码段。即使到了OpenGL 3.0时,仍然只有两个着色器可以自定义,分别为顶点着色器,片元着色器。

    • 顶点着色器(VertexShader) 是用来处理顶点相关的代码。 顶点着色器可以用来进行下面几个操作:1.确定位置,通过顶点坐标,可以确定一个图形的位置,以及形状;2.对图形进行旋转、缩放、移动等操作;3.对3D图形数据进行投影换算,从而变成2D图形,展示在屏幕上

    • 片元着色器(FragmentShader) 片元着色器也叫像素着色器,当一个图形通过顶点着色器固定好位置及大小后,图形就变成了一个个的像素点。 而片元着色器就是对每个像素点进行颜⾊计算和填充。 片元着色器是调用GPU,所以是并行运算,可以轻松的搞定数据量较大的运算。

  • GLSL(OpenGL Shading Language)OpenGL调用GPU工作所用到的语言就是GLSL语言,GLSL的着⾊器代码分成2个部分:Vertex Shader(顶点着⾊器)和Fragment(⽚元着⾊器)。

  • 光栅化(Rasterization)光栅化就是把顶点数据转换为⽚元的过程。光栅化分为2个过程。
    1.确定图形在屏幕中的位置,即定点坐标
    2.将颜色渲染到图形中

  • 纹理本质上是一张图片,但是和我们平常所看到的png、jpg等格式的图片不同,png、jpg是压缩好的图片。 在 OpenGL中,png、jpg会被解压成.tga格式的图片,称之为纹理,而且OpenGL ES中,压缩图会被解压成位图,就变成了纹理。

  • 混合(Blending)两个透明度不为1的图形进行叠加,会造成造成颜色混合,此操作称之为混合。混合会造成离屏渲染,消耗性能。

  • 变换矩阵例如图形想发⽣平移,缩放,旋转变换.就需要使⽤变换矩阵。

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

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