美文网首页
初探OpenGLES

初探OpenGLES

作者: CrazySnow | 来源:发表于2020-07-27 17:05 被阅读0次

    什么是OpenGL ES

    • OpenGL ES是是针对嵌入式设备及移动终端设备的高级3D图形应用程序
    • OpenGL ES 是跨平台的,不会提供窗口相关方法,需要系统各自提供载体

    OpenGL ES 渲染流程

    OpenGLES 渲染流程.png
    OpenGLES3.0图形管线
    图形管线.png
    API获得顶点数据,将顶点数据从内存中拷贝至顶点缓冲区,拿到数据之后,通过attribute通道传递至顶点着色器,同时,纹理坐标通过Texture通道传递到顶点着色器和片元着色器
    图元装配:即图元的连接方式,一共有9种,常用的有6种,此步骤将顶点变换为图形
    片元/片段/像素着色器:处理对应像素点的颜色值,将处理好的每个像素点的颜色值存储到帧缓存区,然后在显示器中显示

    定点着色器

    数据传递.png
    输入方式:
    • 由顶点着色器桥接传递过来的纹理坐标等
    • 通过uniform通道输入统一变量,即顶点/片元着色器中使用的不变的数据
    • 采样器:表示顶点着色器使用纹理的特殊统一变量类型,例如纹理就是通过采样器传递

    输出

    • gl_Position,是GLSL 的内建变量,是将处理后的最终顶点数据赋值给它
    • gl_PointSize,是指点的尺寸,即可以在顶点着色器中修改每个点的大小,使用率较低
      业务场景
    • 矩阵变换位置
    • 计算光照公式生成逐顶点颜色(也可以片元着色器)
    • 生成/变换纹理坐标:片元着色器是没有办法传入属性即attribute的,可以通过顶点着色器桥接,间接将纹理坐标属性传递到片元着色器

    片元着色器

    输入方式:

    • 由顶点着色器桥接传递过来的纹理坐标等
    • 通过uniform通道输入统一变量,即顶点/片元着色器中使用的不变的数据
    • 采样器:表示顶点着色器使用纹理的特殊统一变量类型,例如纹理就是通过采样器传递

    输出

    • gl_Position:顶点着色器中某一个顶点经过一系列处理后得到的结果
    • gl_fragColor:经过片元着色器对某一个像素点来进行处理之后的结果

    片元着色器业务

    • 计算颜色
    • 获取纹理值
    • 往像素点中填充颜色值(纹理值/颜色值)

    相关文章

      网友评论

          本文标题:初探OpenGLES

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