OpenGL ES 初探

2020-07-25  本文已影响0人  A慢慢懂

一、OpenGL ES简介

OpenGL ES (OpenGL for Embedded Systems) 是以⼿持和嵌⼊式为⽬标的⾼级3D图形应⽤程序编程接⼝(API). OpenGL ES 是⽬前智能⼿机中占据统治地位的图形API.
OpenGL ES 开放式图形库(OpenGL的)⽤于可视化的⼆维和三维数据。它是⼀个多功能开放标准图形库,⽀持2D和3D数字内容创建,机械和建筑设计,虚拟原型设计,⻜⾏模拟,视频游戏等应⽤程序。您可使⽤OpenGL配置3D图形管道并向其提交数据。顶点被变换和点亮,组合成图元,并光栅化以创建2D图像。OpenGL旨在将函数调⽤转换为可以发送到底层图形硬件的图形命令。由于此底层硬件专⽤于处理图形命令,因此OpenGL绘图通常⾮常快。
OpenGL for Embedded Systems(OpenGL ES)是OpenGL的简化版本,它消除了冗余功能,提供了⼀个既易于学习⼜更易于在移动图形硬件中实现的库。
OpenGL ES 3.0实现了具有可编程着色功能的图形管线,由两个规范API和着色语言组成,下图概述OpenGL ES 图形管线的各个阶段。


OpenGL ES 3.0 图形管线.png

1.1 顶点着色器

顶点着色器实现了顶点操作的通用可编程方法。
顶点着色器输入包括:

1.2 图元装配

顶点着⾊器之后,下⼀个阶段就是图元装配.
图元(Primitive): 点,线,三⻆形等.
图元装配: 将顶点数据计算成⼀个个图元.在这个阶段会执⾏裁剪、透视分割和Viewport变换操作。
图元类型和顶点索确定将被渲染的单独图元。对于每个单独图元及其对应的顶点,图元装配阶段执⾏的操作包括:将顶点着⾊器的输出值执⾏裁剪、透视分割、视⼝变换后进⼊光栅化阶段。

1.3 光栅化

下一阶段就是光栅化,在此阶段绘制对应的图元(点、直线、三角形)。光栅化是将图元转化为一组二维片段(像素)的过程,这些片段由片段着色器处理

1.4 片段/片元着色器

光栅化阶段生成的片段执行这个着色器。

1.5逐片段操作

逐片段操作.png

1.6EGL (Embedded Graphics Library )

上一篇 下一篇

猜你喜欢

热点阅读