美文网首页
初探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