Compute Shader

计算着色器(Compute Shader)在OpenGL 4.3版本提出,可以帮组应用程序使用GPU来实现通用计算的工作。不仅如此,可以访问图形着色器的资源,同时能够对应用程序流和执行方式加以控制。不同于其他着色器,比如顶点着色器处理顶点,几何着色器处理图元,片元着色处理片元,计算着色器处理与计算相关的单元。而且计算着色器只有一级管线,没有固定输入输出,所有默认的输入通过一组内置变量,额外输入是通过固定的输入输出来控制对纹理和缓冲的访问。 工作组 图形处理器通过并行获得能力,计算着色器的并行性更加直接,任务以工作组(Work Group)为单位进行。工作组可以组合成更大的全局工作组(Global Group),工作组的每个单元为工作项(Work Item),其会被计算着色器调用一次。 图中右下角的黑色方框为工作组,每个工作组有4*3个工作项。所以总共有20*12个Work Item需要执行。 计算着色器中设定本地工作组大小 1 2 3 4 5 6 7 8#version 430 compute-shader layout (local_size_x = 32, local_size_y = 32) in; void...