美文网首页
OpenGL ES初探(上)

OpenGL ES初探(上)

作者: 小溜子 | 来源:发表于2020-07-10 12:26 被阅读0次

    什么是OpenGL ES

    OpenGL ES(OpenGL for Embedded Systems)是以手持和嵌⼊式设备为⽬标的⾼级 3D 图形应⽤程序编程接口(API)。 OpenGL ES 是目前智能手机中占据统治地位的图形 API。支持的平台包括:iOS,Andriod,BlackBerry,bada,Linux 和 Windows,它还是基于浏览器的 3D 图形 Web 标准WebGL 的基础。

    OpenGL ES 是 OpenGL 的简化版本,它消除了冗余功能,提供了一个既易于学习又更易于在移动图形硬件中实现的库。OpenGL ES允许应⽤程序利⽤底层图形处理器的强大功能。iOS 设备上的 GPU 可以执行复杂的 2D 和 3D 绘图,以及最终图像中每个像素的复杂着色计算。

    image.png

    简单的来说,OpenGL ES 和 OpenGL 学习起来大致一样,有很多重复的知识点。整个渲染管线流程如上图,可编程管线中,我们只能操作 顶点着色器 和 片元着色器。

    1、顶点着色器

    (1)顶点着色器的输入输出:

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

    着色器程序 —— 描述顶点上执⾏操作的顶点着色器程序源代码(GLSL代码)或者可执行⽂文件。
    顶点着色器输入(或者属性Attributes)—— 用顶点数组提供的每个顶点的数据。
    统一变量(uniform)—— 顶点(或者片段)着色器使用的不变数据(例如旋转矩阵)。
    采样器—— 代表顶点着色器使用纹理的特殊统一变量类型。

    如下图所示

    image.png

    2) 顶点着色器的业务:

    1、通过矩阵变换位置
    2、计算光照公式生成逐顶点颜色
    3、生成或变换纹理坐标
    此外,因为顶点着色器由应用程序规定,所以它可以用于执行自定义计算,实施新的变换、照明或者较传统的固定功能管线所不允许的基于顶点的效果。

    2、片元(片段)着色器

    1)片元着色器的输入输出:

    片元/⽚段着色器 的 输入 包括:

    着色器程序 —— 描述⽚段上执⾏操作的片元着⾊器程序源代码/可执行⽂件。
    输入变量—— 光栅化单元用插值为每个片段生成的顶点着⾊器输出。
    统一变量(uniform)—— 顶点(或者片段)着色器使用的不变数据。
    采样器 —— 代表⽚元着色器使⽤纹理的特殊统一变量类型。

    如下图所示:

    image.png

    相关文章

      网友评论

          本文标题:OpenGL ES初探(上)

          本文链接:https://www.haomeiwen.com/subject/wsopcktx.html