OpenGL+MetalOpenGLOpenGL

OpenGL(三): 名词解析

2019-05-16  本文已影响0人  慕_風
  1. 顶点着色器(Vertex Shader)

    其主要目的是把3D坐标转换为另一种3D坐标(标准化设备坐标NDC),同时允许对顶点属性进行一些基本处理(旋转/平移/投影)。

    顶点着色器是逐顶点运算的,每个顶点数据都会执行一次顶点着色器,并且这个执行都是并行的。

  2. 图元装配(Primitive Assembly)

    图元装配阶段将顶点着色器输出的所有顶点数据作为输入,并将所有的点装配成指定图元的形状。

  3. 几何着色器(Geometry Shader)

    图元装配阶段的输出会传递给几何着色器。几何着色器把图元形式的一些列顶点的集合作为输入,它可以通过产生新顶点构造出新的图元来生成其他形状。

  4. 光栅化(Rasterization Stage)

    几何着色器的输出会被传入光栅化阶段,它会把图元映射为最终屏幕上相应的像素,生成供片元着色器使用的片元。在片元着色器运行之前会执行裁剪。裁剪会丢弃超出视图之外的所有像素,用来提升执行效率。

  5. 片元着色器(Fragement Shader)

    片元着色器的主要目的是计算一个像素的最终颜色,这也是所有OpenGL高级效果产生的地方。通常,片元着色器包含3D场景的数据(关照、阴影、光的颜色等),这些数据可以被用来计算最终像素的颜色。

  6. 测试和混合

    在所有对应颜色值确定以后,最终的对象将会被传递到最后一个阶段——Alpha测试和混合阶段。这个阶段检测片段的对应的深度值,用它们来判断这个像素是在其他物体的前面还是后面,决定是否应该丢弃。这个阶段也会检查alpha值并对物体进行混合。

在图形渲染管线的各个阶段中,部分着色器是允许开发者配置的,以适用于各种不同的使用场景中,而开发者经常配置的着色器是顶点着色器和片元着色器。

上一篇下一篇

猜你喜欢

热点阅读