图形API:
OpenGL (Open Graphics Library):用于渲染2D、3D矢量图形的跨平台、跨语言的编程图形程序接口
GLSL( OpenGL Shading Language / OpenGL着⾊语⾔):⽤来在OpenGL中进行自定义着色的编程语⾔
OpenGL ES(OpenGL for Embedded Systems):是OpenGL的子集,针对移动端等嵌入式设备
DirectX:针对windows平台的多媒体处理框架
Metal:apple公司推出的官方用于渲染3d图形和数据并行计算的框架
OpenGL / OpenCV的区别
OpenGL(Open Graphics Library)用于渲染2d 3d图形渲染的框架
OpenCV(Open Source Computer Vision Library)用于图像处理和图像识别的计算机视觉库
OpenGL 专业名词解析
上下文context:openGL状态机,用于记录OpenGL中的各种状态。在调用任何OpenGL指令之前,都需要创建一个openGL上下文
渲染rendering:将图形数据转换成2d空间图像的操作
顶点:绘制图形时,图像的顶点位置的数据,如三角形的三个顶点。其可以存储在内存数组中,也可以储存在GPU缓存中
顶点数组vertexArray:顶点数组储存在内存中时称为顶点数组
顶点缓存区vertexBuffer:为了更好的性能,提前在GPU分配一块内存,将顶点数组储存在该区域内,则该区域称为顶点缓存区
位图bitmap:由像素(图片元素)的单个点组成
100*100的位图内存大小(rgba)= 100*100*4 字节
管线:类似生产线的各个节点,比喻一个操作流程
例子:生产肥皂的流水线:肥皂原材料 -> 肥皂水 -> 模具 -> 肥皂块
固定管线 /固定着色器:比喻一个标准或固定的操作流程,各个环节不可自定义
例子:生产肥皂的流水线:肥皂原材料 -> 肥皂水 -> 固定模具 -> 肥皂块
可编程管线:管线中的环节可以进行个性化定制,对应可编程着色器(GLSL语法来驱动GPU)
例子:生产肥皂的流水线:肥皂原材料 -> 肥皂水 -> 可编程模具 -> 肥皂块
着色器Shader:GPU中的处理图像数据的代码段
顶点着色器VertexShader:openGL中对计算顶点属性的程序,一般用来处理图形每个顶点的变换(旋转/平移/投影等),每个顶点数据都会执行一次顶点着色器(并行计算)。顶点坐标由自身坐标系转换到归一化坐标系的运算,就发生在此处。
片元着色器FragmentShader:openGL中计算片段(像素)颜色的程序,一般用来处理图形中每个像素点颜色计算和填充。每个像素点都会执行一次片元着色器(并行计算)。片元中的每一个元素对应帧缓冲区中的一个像素
自定义着色器:使用GLSL自定义编程自定义的着色器
光栅化Rasterization:把物体的数学描述以及与物体相关颜色信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色的这一过程,称为光栅化
openGL中:把顶点数据转换为片元的过程,将几何图元变换为二维图像的过程,该过程包含两个步骤:1、决定窗口坐标中的哪些整型栅格区域被基本图元占用;2、分配一个颜色值和一个深度值到各个区域。光栅化过程产生的是片元
纹理texture: 最通常的作用是装饰我们的物体模型,它就像是贴纸一样贴在物体表面,使得物体表面拥有图案
混合blending:简单来说就是图层混合,像素点的值进行混合,混合算法可以使用openGL原生方法或自定义编程
变换矩阵Transformation:矩阵论,最为常用的几何变换都是线性变换,这包括旋转、缩放、切变、反射以及正投影
投影矩阵Projection:矩阵论,将物体在3d坐标下投影到2d坐标中(二维屏幕)
投影方式:1、正投影(平行投影):忽略物体到观察者的距离(z轴),即2d投影
2、透视投影:包含物体到观察者的距离(z轴),即3d投影
坐标系:
物体坐标系:以物体为原点的坐标系
摄像机坐标系Camera:以摄像机(观察者)为原点的坐标系
参考:
1 课堂笔记和ppt
网友评论