阅读 4287

OpenGL03 - 固定着色器知识点

1. OpenGL渲染架构如下图所示:

其中可编程的位置为Vertex shader以及Fragment Shader.

如图所示,在可编程着色器中,我们可以通过attrbutes和uniforms以及纹素数据texture这三种方式向顶点着色器传递数据。但我们不能使用attributes方式向片元着色器传递值。顶点着色器向片元着色器传递值,采用的是varing方式。

而在固定着色器中,则使用三角形批次类传递值。

2. 固定着色器类型:

  • 单元着色器 - 图形所有片段都会以一种颜色填冲
  • 平面着色器 - 绘制图形的时候,可以应用变化(模型/投影变化)
  • 上色着色器 - 在绘制图形的时候,可以应用变换,颜色将会平滑地插入到顶点之间,称为平滑着色
  • 默认光源着色器 - 在绘制图形时候,可以应用变换,这种着色器会使绘制的图形产生阴影和光照效果
  • 点光源着色器 - 和默认光源着色器的区别,是可以设置点光源的位置
  • 纹理替换矩阵着色器
  • 纹理光源着色器

3. 图元连接方式

  • GL_POINTS 每个顶点在屏幕上都是单独的点
  • GL_LINES 每一对顶点定义一个线段
  • GL_LINE_STRIP 一个从第一个顶点依次经过每一个后续顶点而绘制的线条
  • GL_LINE_LOOP 和GL_LINE_STRIP相同,但是最后一个顶点和第一个顶点连接起来了
  • GL_TRIANGLES 每三个顶点构成一个三角形
  • GL_TRIANGLE_STRIP 三角形带,新增一个顶点,就复用前面的两个顶点,构成一个新的三角形。
  • GL_TRIANGLE_FAN 以一个原点为中心,呈扇形排列,公用相邻顶点的一组三角形

4. 三角形

在OpenGL中逆时针为正面,顺时针为背面。可以通过glfrontface进行修改。 glfrontFace(cl_cw), 告诉opengl顺时针环绕的多边形为正面。 glfrontface(gl_ccw)告诉openGl逆时针环绕的多边形为正面,在以后的正背面剔除会使用到这个概念。

文章分类
iOS
文章标签