OpenGL渲染流程图解析

351 阅读1分钟

6adb87edd49845a39c3491301ba3de4d.png

Client和Server是指什么

图中的client和server并不是表示平时开发中客户端和服务器的意思,而是将cpu抽象成一个client,gpu抽象成一个server。

attribute属性应该存储怎样的值?

经常会发生改变的值:

  • 颜色数据
  • 顶点数据
  • 纹理坐标
  • 光照法线

uniform属性应该存储怎样的值?

比较统一不经常改变:

  • 旋转矩阵(顶点着色器需要)
  • 将YUV转换成RGB的转换矩阵(片元着色器需要)

attribute可以直接传递到片元着色器吗?

不可以,只能通过GLSL代码(顶点着色器)间接传递,但uniform可以直接传递到片元着色器。

Texture Data(纹理数据)有必要传给顶点着色器吗?

可以,但没必要,纹理数据主要是片元着色器处理。