1、常见图形API介绍
OpenGL(Open Graphics Library)是⼀个跨编程语⾔、跨平台的编程图形程序接⼝,它将计算机的资源抽象称为⼀个OpenGL的对象,对这些资源的操作抽象为⼀个的OpenGL指令。
OpenGL ES (OpenGL for Embedded Systems)是 OpenGL三维图形 API 的⼦集,针对⼿手机、 PDA和游戏主机等嵌入式设备而设计,去除了许多不必要和性能较低的API接口。
DirectX 是由很多API组成的,DirectX并不不是⼀个单纯的图形API. 最重要的是DirectX是属于 Windows上⼀个多媒体处理理API。并不支持Windows以外的平台,所以不是跨平台框架, 按照性 质分类,可以分为四⼤大部分,显示部分、声⾳音部分、输⼊入部分和⽹网络部分。
Metal: Apple为游戏开发者推出了了新的平台技术Metal,该技术能够为 3D 图像提⾼ 10 倍的渲染性能。Metal是Apple为了解决3D渲染⽽而推出的框架。
2、核心名词概念
-
·OpenGL上下文(context) 与状态机
状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型
上下文可以理解为多个状态机的集合,而状态机可以类比现实生活中的开关,根据信号操作,变更当前的状态,如:开->关->开
-
渲染 Rendering
将图形/图像数据通过解码,将其显示绘制到屏幕上的操作 -
顶点数组、顶点缓冲区
顶点数据就是图像的轮廓。OpenGL中的图像都是由图元组成。在OpenGL ES中,有3种类型的图元:点、线、三⻆形。顶点数据存储方式:
1、顶点数组:存储在内存中
2、顶点缓冲区:存储在GPU提前分配的显存中 -
管线
可以理解为流水线,或者是固定的步骤,无法变更 -
着⾊器程序(Shader)
区别于管线,变更为可编程的、自定义流程的 -
顶点着色器
OpenGL中用来处理顶点相关代码的程序
将顶点坐标由自身坐标系转换到归一坐标系
是逐顶点运行的程序,即每个顶点数据都会执行一次,且是并行的
操作确定顶点位置
处理图形顶点的变换(旋转、平移、缩放)
3D图形数据 投影换算 为2D图形数据 -
片元着色器
片元:理解为屏幕中的像素点
片元着色器主要用于处理一个个的像素点,例如像素颜色的计算和填充
逐像素且在GPU并行运行的程序,即每个像素都会执行一次 -
光栅化(Rasterization)
光栅化就是把顶点数据转换为片元的过程。具有将图转化为⼀个个栅格组成的图象的作⽤,特点是每个元素对应帧缓冲区中的⼀像素。光栅化其实是⼀种将⼏何图元变为二维图像的过程。该过程包含了两部分的⼯作。第⼀部分工作:决定窗⼝坐标中的哪些整型栅格区域被基本图元占⽤;第⼆部分⼯作:分配一个颜⾊值和⼀个深度值到各个区域。
把物体的数学描述以及与物体相关的颜色信息转换为屏幕上用于对应位置的像素及⽤于填充像素的颜⾊,这个过程称为光栅化。这是⼀个将模拟信号转化为离散信号的过程。
核心要点:
光栅化就是把顶点数据转换为片元的过程。
该过程包含了两部分的⼯作:
①决定窗⼝坐标中的哪些整型栅格区域被基本图元占⽤;
②分配一个颜⾊值和⼀个深度值到各个区域。 -
纹理(Texture)
纹理可以理解为图⽚。 在渲染图形时需要在顶点围成的区域中填充图⽚,使得场景更加逼真。⽽这⾥使⽤的图⽚,就是常说的纹理。只是在OpenGL,我们更加习惯叫纹理,⽽不是图⽚。 -
混合(Blending)
可理解为不同图形相交,触发计算,得出重叠处颜色
网友评论