IOS视觉

01-OpenGL常⻅的专业名词

2020-07-02  本文已影响0人  食堂厨子高大彪

[TOC]

0. 图形API简介

  1. OpenGL (Open Graphics Library)是⼀个跨编程语⾔、跨平台的编程图形程序接⼝.
  2. OpenGL ES (OpenGL for Embedded Systems)是 OpenGL 的⼦集,针对⼿机、PDA和游戏主机等嵌⼊式设备⽽设计,去除了许多不必要和性能较低的API接⼝。
  3. DirectX 是属于Windows上⼀个多媒体处理框架.并不⽀持Windows以外的平台.
  4. Metal : Apple推出的,该技术能够为 3D 图像提⾼ 10 倍的渲染性能.

1. 上下⽂ ( context )

在应⽤程序调⽤任何OpenGL的指令之前,需要安排⾸先创建⼀个OpenGL的上下⽂。这个上下⽂是⼀个⾮常庞⼤的状态机,保存了OpenGL中的各种状态,这也是OpenGL指令执⾏的基础。
我理解大概相当于ps的工具面板,能存储文字的颜色状态等


image.png

2. 渲染

将图形/图像数据转换成2D空间图像操作叫做渲染(Rendering).

3. 顶点数组( VertexArray ) 和 顶点缓冲区( VertexBuffer )

画矩形时,需要确定六个顶点的位置,这些顶点就是顶点数据。
在OpenGL ES中,有3种类型的图元:点、线、三⻆形。
顶点储存在哪里呢?顶点数据->内存中,这种叫顶点数组.
⽽性能更⾼的做法是,提前分配⼀块显存,顶点数据-> GPU 显存,这种叫顶点缓冲区.

4. 位图

假设120 * 120像素的一张图片,这张图占14400个像素,一般RGB是0-255是256种颜色,就是2的八次方种也叫8位深,一个字节占八位,所以RGBA是4个字节
120 * 120 = 14400 -> RGBA -> 14400 * 4 = 位图

5.管线,固定管线,可编程管线

管线像流⽔线,像汽车流水线.
固定管线: 对应⾮常多模具 (固定着⾊器) ->结果生产出哈弗,wey等
可编程管线: ⾃定义编程模具(GLSL语法来驱使GPU)->结果生产出某大佬专用的哈弗.

6. 着⾊器

函数/⽅法(代码段) -> CPU来使⽤; shader(代码段)->GPU

  1. 固定着⾊器(存储着⾊器)
    苹果提供API(代码段)->调⽤(参数) OpenGL 来提供 ;
  2. ⾃定义着⾊器: 进⾏⾃定义(⾃⼰基于GLSL语法来进⾏编写代码段)

7. GLSL

OpenGL着⾊语⾔(OpenGL Shading Language),是在图形卡的GPU上执⾏的。代替了固定的渲染管
线的⼀部分,使渲染管线中不同层次具有可编程性。⽐如:视图转换、投影转换等。GLSL(GL Shading Language)的着⾊器代码分成2个部分:Vertex Shader(顶点着⾊器)和Fragment(⽚元着⾊器)

  1. 顶点着⾊器: ⽤来处理顶点相关代码 1.确定位置 2.缩放/平移/旋转位置换算 3.⼿机端显示3D ⼿机屏 幕实际2D, 3D图形数据->2D(投影换算) ->OpenGL ES
  2. ⽚元着⾊器: ⽚元(像素点)着⾊器. 处理⼀个⼀个像素点; 120 * 120 像素点. 14400次 GPU 并⾏运 算;

8. 图元和光栅化

过程:顶点—> 图元 —> 片元—> 像素


image.png

放大,看到一格一格的,就是光栅化


image.png

9. 纹理

可以理解为图片,一般为tga格式

10. 混合(Blending)

两张有透明度的图片,有重叠在一起的时候,颜色混合计算.

11.变换矩阵(Transformation) ,投影矩阵Projection

• 变换矩阵. 例如图形想发⽣平移,缩放,旋转变换.就需要使⽤变换矩阵.
• 投影矩阵Projection ⽤于将3D坐标转换为⼆维屏幕坐标,实际线条也将在⼆维坐标下进⾏绘制

上一篇下一篇

猜你喜欢

热点阅读