一. 几种图形API简介,OpenGL ES ,DirectX,Metal
1.OpenGL:是一种跨编程语言,跨平台的变成图形程序接口,它将计算机的资源抽象称为一个个OpenGL的对象,对这些资源的操作抽象为一个个的OpenGL指令
2.OpenGL ES:是OpenGL三维图形API的子集,针对手机,PDA和游戏主机等嵌入式设备而设计,去除了许多不必要和性能较低的API接口。
3.DirectX:并不是一个单纯的图形API,是由很多API组成,Windows上的一个多媒体处理框架,除Windows外不支持,按照性质分可以分成四大部分:显示,声音,输入以及网络部分
4.Metal:Apple独有,该技术可以为3D图像提高10倍的渲染性能
二.专业术语:
上下文 :是一个巨大的状态机,面向过程,具有记忆功能,比如深度测试,记录过程中这些功能的打开与关闭,可以理解为是一个环境变量
渲染 :将图片或控件绘制到屏幕上的过程 比如图片,经过解码后绘制到屏幕上
顶点数组 :在内存中存储顶点数据的位置
顶点缓存区 :在GPU显存中存储顶点的位置
位图:又叫纹理,png或者jpg文件解压后的大小,比如一个20*20的图片,显示过程中需要使用RGBA去描述,每个色值占8位,1字节=8位,则20*20*4,
映射:对应关系
管线 :渲染的过程叫做管线 就像流水线
固定管线 :只能修改固定着色器的管线,其对应很多固定着色器,就像API中的参数一样,API名称是一样的,但是参数可能不太一样
可编程管线:就像流水线上的某些环节进行可编程一样,可以试用GLSL语法来驱使GPU
着色器 :给GPU试用的代码段,与给CPU试用的方法函数一样都是代码段
固定着色器(存储着色器) :已经写好的可直接调用的API
自定义着色器 :可以基于GLSL语法进行自定义编写的代码段
顶点着色器 :用来处理顶点相关的代码,功能:1.确定位置 2.缩放、平移、旋转位置换算 3.手机端显示3D
片元着色器 :又叫像素着色器。用来处理像素点的。假如是一个30*30的图片,需要处理900次,但是相对于CPU来说,GPU是并行运算,会快很多。比如模糊效果或者色彩饱和度,就是由片元着色器进行一个个的像素点的修改
GLSL:一种代码语言 ,驱动GPU,遵循OpenGL的标准
MetalGLSL:Metal使用的语言
光栅化:将顶点数据转换成片元的过程,分为两个过程:1. 确定图形在屏幕上的像素返回 2.颜色附着
纹理 :可以理解为图片,但是不太一致,需要将png转换成位图,所以纹理又是位图
混合:图层叠加的计算。它是由OpenGL来计算
变换矩阵:用作顶点或者图形发生平移,缩放,旋转变换。
投影矩阵:用于3D图形坐标转化为2D坐标的过程
投影方式:有且只有两种:1.正投影(平行投影)不管远近进行1:1显示 一般用来显示2D效果 (图片) 2.透视投影 (近大远小)
camera:观察者视角
坐标系:1.摄像机坐标系(观察视角不同,内容不同)2.世界坐标系:所有物体都在其内 3.物体坐标系:基于物体本身的坐标系