iOS学习

OpenGL常见专业名词介绍与简单的理解

2020-07-03  本文已影响0人  小松松先生

引言:移动端开发的基础是OpenGL,想对iOS动画,图片渲染有深入的了解,就必定要接触相关的开发知识,这里是对部分名词相关的解释与理解,作者本人相关领域纯小白,如有错误,还望指出,共勉。

1. Context(上下⽂): 不仅在iOS开发中有,在安卓上也有相关概念,在IOS应用程序中,每个线程都会维护一个当前上下文,相当于一个大型的状态机.

疑问1:context是在堆上创建的吗?
   2:上下文在未获取之前又在内存的哪里存放着的?

当你的应用程序使用Opengl 的调用时,线程的上下文就会被那个调用改变。

2.Rendering(渲染):是将图片从二进制数据转换到屏幕上显示的过程。
一个三围图像渲染到二维屏幕上的过程可分为两大块:
一. 把 3D 坐标转换为 2D 坐标
二. 把 2D 坐标转变为实际的有颜色的像素

3.vertex array(顶点数组):屏幕上的图像是由点,线,三角形构成的,如果是由三角形构成的图形,那么每个三角形的顶点坐标数组,就构成了顶点数组,这些数据会放在内存中供cpu/gpu进行调度使用。

4.Vertex Buffers(顶点缓存区): 存放在显存中的顶点数组
一个100*100分辨率的ARGB_8888 图像(A,R,G,B分别为8bit,),大小是 100 * 100 * 4 b,
那么如果是一张复杂的图片,在图片上的顶点数组像素点是很有可能接近这个大小的,如果全部放到内存,8gb都会捉襟见肘。
同时因为cpu的架构问题,存在内存的数据会再次经过cpu中转一层再给gpu,造成了cpu负担的加剧。
这时候,给gpu单独开辟一块儿专用的内存,存放图片顶点数组数据,既减轻了负担,也节约了公共空间,何乐不为,这就是我理解的显存的出现。

5.位图:是由称作像素的单个点组成的图像。

6.映射:一个对象在各种情况下的对应关系。

7.管线:是gpu内部处理图形信号相互独立的的并行处理单元,可以认为是一条独立的工厂流水线。

8.固定管线:既底层实现中不需要也不允许你进行自定义的流水线,仅仅需要你将参数输入即可得到由固定渲染流程得出的渲染结果。

9.可编程管线:与固定管线相关对应,必须由开发者自行实现渲染流程,否则无法绘制出最终的画面。开发者可以根据自己的具体需要来编写顶点渲染和像素渲染中的具体逻辑,可最大程度的简化渲染管线的逻辑以提高渲染效率,也可自己实现特定的算法和逻辑来渲染出固定管线无法渲染的效果。具有很高的可定制性。

10.着色器(shader):是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序:Vertex Shader主要负责顶点的几何关系等的运算,Pixel Shader主要负责片源颜色等的计算。

11.固定着色器:在iOS开发中,由OpenGL和apple提供的api,仅仅需要你将参数输入即可实现图像渲染。

12.自定义着色器:⾃⼰基于GLSL语法来进⾏编写代码段实现着色器,根据自己特定的算法和逻辑创造出高定制化的效果。

13.顶点着色器:用来处理图形顶点数组的程序代码,主要由3个功能:
确定顶点位置;进行缩放/平移/旋转位置的换算;(x,y,z)轴3d图形数据 -->2d图形的投影转化计算。

14.片元着色器:对每个像素点进行处理的程序代码。

15.GLSL(OpenGL着色语言):在可编程管线,着色器中使用的类似于C语言的编程语言。

16.光栅化:是把顶点数据转换为片元(图形中确定的像素点)的过程,具有将图转化为一个个栅格组成的图象的作用,特点是每个元素对应帧缓冲区中的一像素。光栅化其实是一种将几何图元变为二维图像的过程。该过程包含了两部分的工作。
第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用。
第二部分工作:分配一个颜色值和一个深度值到各个区域,光栅化过程产生的是片元。

17.纹理:表示物体表面细节的一幅或几幅二维图形,也叫做纹理贴图。

18.Blending(混合):Blending 是将源色和目标色以某种方式混合生成特效的技术。混合常用来绘制透明或半透明的物体。在混合中起关键作用的α值实际上是将源色和目标色按给定比率进行混合,以达到不同程度的透明。α值为0则完全透明,α值为1则完全不透明。混合操作只能在RGBA模式下进行,颜色索引模式下无法指定α值。物体的绘制顺序会影响到OpenGL的混合处理。

19.变换矩阵:图像在数据层上面的表示是由数据矩阵进行表现的,把目标矩阵和变换矩阵进行特殊的数学运算后的操作可以得到对应的变化图形,比如倒置,景象,位移等。

20.投影矩阵:在OpenGL中一个3D场景需要被投影到屏幕上成为一个2D图像。这称为投影变换,需要用到投影矩阵(projection matrix)。
投影矩阵会把所有顶点坐标从eye coordinates(观察空间,类似于上帝视角)变换到裁剪坐标(clip coordinated)。
然后,这些裁剪坐标被变换到标准化设备坐标(NDC)。

21.投影方式:
1: 正投影(平⾏投影) 图⽚绘制不管远近 1:1 进⾏绘制 ,显示 2D效果。

  1. 透视投影:实现出远小近大的3D效果。
上一篇下一篇

猜你喜欢

热点阅读